From a2787a0770fda8841ea91a584b244af6d53762f0 Mon Sep 17 00:00:00 2001 From: Greg Wilson Date: Thu, 10 Jul 2025 09:56:41 -0400 Subject: [PATCH 01/16] - Move contents of `commands.py` to scripts in new `bin` directory and break into individual scripts. - Tidy up imports etc. while doing so. - Move code generation from `./codegen` to `./bin/codegen`. - Move `plot-schema.json` to `./resources` rather than burying it under the `codegen` folder. - Add `Makefile` to run commands instead of putting everything in `commands.py`. - Run `ruff` directly for checking and formatting rather than launching a subprocess from Python as `commands.py` did. - Modify `.gitignore to ignore `docs` and `docs_tmp`. (Will eventually want to include `docs` or overwrite `doc`.) - Minor reformatting of `README.md`. - Update `CONTRIBUTING.md` to describe relocation of commands and code generation to `bin`. - `CONTRIBUTING.md` documents `--local`, `--devrepo` and `--devbranch` options for updating JavaScript bundle that `commands.py` didn't seem to provide. - Add `mkdocs.yml` configuration file for `mkdocs`. - Most of this file was vibe coded using Claude. - `mkdocs` does not support reading configuration from `pyproject.toml`, so we need the extra config file. - Use `material` theme. - Read hand-written Markdown from `pages` and write output to `docs`. - Generate module index pages on the fly using `mkdocs-gen-files` plugin. (See discussion of `bin/generate_reference_pages.py` below.) - Set docstring style to `google` (even though much of our documentation isn't formatted that way). - Add placeholder Markdown files in `pages` that include files from the root directory (README, code of conduct, contributors' guide, license). - Remove relative links between these pages because they don't work when the content is transcluded one directory lower. - Modify docstring in `plotly/_subplots.py` to escape closing `]` with backslash to avoid confusing `mkdocs` Markdown. - Here and elsewhere the escape is written `\\]` because we need `\]` in the actual string. We could convert the docstrings to literal strings prefixed with `r` to avoid the double backslash. - Have also escaped some `[` as `\\[` for the same reason. - Similar change to `plotly/basedatatypes.py`. - Reformat line breaks in docstrings in `plotly/express/_core.py`. - Modify `pyproject.toml` to install `mkdocs` and related packages for dev. - Modify `pyproject.toml` to install `pydoclint` for checking documentation. - Currently reporting a *lot* of errors. - Update `uv.lock` to match. --- .gitignore | 3 + CONTRIBUTING.md | 23 +- Makefile | 58 ++ README.md | 19 +- {codegen => bin/codegen}/__init__.py | 67 +- {codegen => bin/codegen}/compatibility.py | 17 +- {codegen => bin/codegen}/datatypes.py | 16 +- {codegen => bin/codegen}/figure.py | 9 +- {codegen => bin/codegen}/utils.py | 16 +- {codegen => bin/codegen}/validators.py | 9 +- bin/generate_code.py | 27 + bin/generate_reference_pages.py | 58 ++ bin/updatejs.py | 32 + commands.py => bin/utils.py | 94 +-- mkdocs.yml | 40 + pages/conduct.md | 1 + pages/contributing.md | 1 + pages/index.md | 1 + pages/license.md | 1 + plotly/_subplots.py | 26 +- plotly/basedatatypes.py | 4 +- plotly/express/_core.py | 8 +- plotly/figure_factory/_violin.py | 4 +- plotly/subplots.py | 22 +- plotly/tools.py | 24 +- pyproject.toml | 9 +- .../resources => resources}/plot-schema.json | 159 +++- uv.lock | 708 +++++++++++++++++- 28 files changed, 1216 insertions(+), 240 deletions(-) create mode 100644 Makefile rename {codegen => bin/codegen}/__init__.py (85%) rename {codegen => bin/codegen}/compatibility.py (93%) rename {codegen => bin/codegen}/datatypes.py (98%) rename {codegen => bin/codegen}/figure.py (99%) rename {codegen => bin/codegen}/utils.py (99%) rename {codegen => bin/codegen}/validators.py (94%) create mode 100644 bin/generate_code.py create mode 100644 bin/generate_reference_pages.py create mode 100644 bin/updatejs.py rename commands.py => bin/utils.py (79%) create mode 100644 mkdocs.yml create mode 100644 pages/conduct.md create mode 100644 pages/contributing.md create mode 100644 pages/index.md create mode 100644 pages/license.md rename {codegen/resources => resources}/plot-schema.json (99%) diff --git a/.gitignore b/.gitignore index 5bb4e110325..063be791b13 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,9 @@ tests/test_orca/images/linux/failed/ doc/python/raw.githubusercontent.com/ +docs/ +docs_tmp/ + # Don't ignore dataset files !*.csv.gz !*.geojson.gz diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ad666ea805c..f4cfaf94447 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,7 +8,7 @@ then explains the technical aspects of preparing your contribution. ## Code of Conduct -Please note that all contributos are required to abide by our [Code of Conduct](CODE_OF_CONDUCT.md). +Please note that all contributos are required to abide by our Code of Conduct. ## Different Ways to Contribute @@ -19,7 +19,7 @@ it is important to understand the structure of the code and the repository. - The [`plotly.graph_objects`](https://plotly.com/python/graph-objects/) module (usually imported as `go`) is [generated from the plotly.js schema](https://plotly.com/python/figure-structure/), so changes to be made in this package need to be contributed to [plotly.js](https://github.com/plotly/plotly.js) - or to the code generation system in `./codegen/`. + or to the code generation system in `./bin/codegen/`. Code generation creates traces and layout classes that have a direct correspondence to their JavaScript counterparts, while higher-level methods that work on figures regardless of the current schema (e.g., `BaseFigure.for_each_trace`) are defined in `plotly/basedatatypes.py`. @@ -38,16 +38,17 @@ it is important to understand the structure of the code and the repository. These are organized in subdirectories according to what they test: see the "Setup" section below for more details. -- Documentation is found in `doc/`, and its structure is described in [its README file](doc/README.md). +- Documentation is found in `doc/`, and its structure is described in its README file. The documentation is a great place to start contributing, since you can add or modify examples without setting up a full environment. -Code and documentation are not the only way to contribute: -you can also help by: +Code and documentation are not the only way to contribute. +You can also help by: - Reporting bugs at . Please take a moment to see if your problem has already been reported, and if so, add a comment to the existing issue; - we will try to prioritize those that affect the most people. + we will try to prioritize those that affect the most people + and that are accompanied by small, runnable examples. - Submitting feature requests (also at ). Again, please add a comment to an existing issue if the feature you want has already been requested. @@ -219,11 +220,11 @@ Once you have done that, run the `updateplotlyjs` command: ```bash -python commands.py updateplotlyjs +python bin/updatejs.py ``` This downloads new versions of `plot-schema.json` and `plotly.min.js` from the `plotly/plotly.js` GitHub repository -and places them in `plotly/package_data`. +and places them in `resources` and `plotly/package_data` respectively. It then regenerates all of the `graph_objs` classes based on the new schema. ### Using a Development Branch of Plotly.js @@ -232,7 +233,8 @@ If your development branch is in [the plotly.js repository](https://github.com/p you can update to development versions of `plotly.js` with this command: ```bash -python commands.py updateplotlyjsdev --devrepo reponame --devbranch branchname +# FIXME commands.py didn't provide --devrepo or --devbranch +python bin/updatejs.py --dev --devrepo reponame --devbranch branchname ``` This fetches the `plotly.js` in the CircleCI artifact of the branch `branchname` of the repo `reponame`. @@ -255,5 +257,6 @@ You can then run the following command *in your local plotly.py repository*: ```bash -python commands.py updateplotlyjsdev --local /path/to/your/plotly.js/ +# FIXME: commands.py didn't provide --local +python bin/updatejs.py --dev --local /path/to/your/plotly.js/ ``` diff --git a/Makefile b/Makefile new file mode 100644 index 00000000000..63d26ae08ba --- /dev/null +++ b/Makefile @@ -0,0 +1,58 @@ +# Manage plotly.py project. + +RUN = uv run +PACKAGE_DIRS = _plotly_utils plotly +CODE_DIRS = ${PACKAGE_DIRS} scripts + +## commands: show available commands +commands: + @grep -h -E '^##' ${MAKEFILE_LIST} | sed -e 's/## //g' | column -t -s ':' + +## docs: rebuild documentation +.PHONY: docs +docs: + ${RUN} mkdocs build + +## docs-lint: check documentation +docs-lint: + ${RUN} pydoclint ${PACKAGE_DIRS} + +## docs-tmp: rebuild documentation saving Markdown in ./tmp +docs-tmp: + MKDOCS_TEMP_DIR=./docs_tmp ${RUN} mkdocs build + +## format: reformat code +format: + ${RUN} ruff format ${CODE_DIRS} + +## generate: generate code +generate: + ${RUN} bin/generate_code.py --codedir plotly + ${RUN} ruff format plotly + +## lint: check the code +lint: + ${RUN} ruff check ${CODE_DIRS} + +## test: run tests +test: + ${RUN} pytest tests + +## updatejs: update JavaScript bundle +updatejs: + ${RUN} bin/updatejs.py --codedir plotly + +## --: -- + +## clean: clean up repository +clean: + @find . -name '*~' -delete + @find . -name '.DS_Store' -delete + @rm -rf .coverage + @rm -rf .pytest_cache + @rm -rf .ruff_cache + @rm -rf dist + +## sync: update Python packages +sync: + uv sync --extra dev diff --git a/README.md b/README.md index 11f117aca59..8e6ef158f46 100644 --- a/README.md +++ b/README.md @@ -76,13 +76,13 @@ Built on top of [plotly.js](https://github.com/plotly/plotly.js), `plotly.py` is ## Installation -plotly.py may be installed using pip +plotly.py may be installed using pip: ``` pip install plotly ``` -or conda. +or conda: ``` conda install -c conda-forge plotly @@ -90,8 +90,7 @@ conda install -c conda-forge plotly ### Jupyter Widget Support -For use as a Jupyter widget, install `jupyter` and `anywidget` -packages using `pip`: +For use as a Jupyter widget, install the `jupyter` and `anywidget` packages using `pip`: ``` pip install jupyter anywidget @@ -112,14 +111,14 @@ command line utility (legacy as of `plotly` version 4.9). #### Kaleido -The [`kaleido`](https://github.com/plotly/Kaleido) package has no dependencies and can be installed -using pip +The [`kaleido`](https://github.com/plotly/Kaleido) package has no dependencies +and can be installed using pip: ``` pip install -U kaleido ``` -or conda +or conda: ``` conda install -c conda-forge python-kaleido @@ -129,13 +128,13 @@ conda install -c conda-forge python-kaleido Some plotly.py features rely on fairly large geographic shape files. The county choropleth figure factory is one such example. These shape files are distributed as a -separate `plotly-geo` package. This package can be installed using pip... +separate `plotly-geo` package. This package can be installed using pip: ``` pip install plotly-geo==1.0.0 ``` -or conda +or conda: ``` conda install -c plotly plotly-geo=1.0.0 @@ -145,7 +144,7 @@ conda install -c plotly plotly-geo=1.0.0 ## Copyright and Licenses -Code and documentation copyright 2019 Plotly, Inc. +Code and documentation copyright Plotly, Inc. Code released under the [MIT license](https://github.com/plotly/plotly.py/blob/main/LICENSE.txt). diff --git a/codegen/__init__.py b/bin/codegen/__init__.py similarity index 85% rename from codegen/__init__.py rename to bin/codegen/__init__.py index b299fa36045..294566f7f06 100644 --- a/codegen/__init__.py +++ b/bin/codegen/__init__.py @@ -1,8 +1,6 @@ import json import os -import os.path as opath import shutil -import subprocess import sys from codegen.datatypes import build_datatype_py, write_datatype_py # noqa: F401 @@ -87,45 +85,30 @@ def preprocess_schema(plotly_schema): items["colorscale"] = items.pop("concentrationscales") -def make_paths(outdir): - """Make various paths needed for formatting and linting.""" +def make_paths(codedir): + """Make various paths needed for code generation.""" - validators_dir = opath.join(outdir, "validators") - graph_objs_dir = opath.join(outdir, "graph_objs") - graph_objects_path = opath.join(outdir, "graph_objects", "__init__.py") + validators_dir = codedir / "validators" + graph_objs_dir = codedir / "graph_objs" + graph_objects_path = codedir / "graph_objects" / "__init__.py" return validators_dir, graph_objs_dir, graph_objects_path -def lint_code(outdir): - """Check Python code using settings in pyproject.toml.""" - - subprocess.call(["ruff", "check", *make_paths(outdir)]) - - -def reformat_code(outdir): - """Reformat Python code using settings in pyproject.toml.""" - - subprocess.call(["ruff", "format", *make_paths(outdir)]) - - -def perform_codegen(outdir, noformat=False): - """Generate code (and possibly reformat).""" +def perform_codegen(codedir, noformat=False): + """Generate code.""" # Get paths - validators_dir, graph_objs_dir, graph_objects_path = make_paths(outdir) + validators_dir, graph_objs_dir, graph_objects_path = make_paths(codedir) # Delete prior codegen output - if opath.exists(validators_dir): + if validators_dir.exists(): shutil.rmtree(validators_dir) - if opath.exists(graph_objs_dir): + if graph_objs_dir.exists(): shutil.rmtree(graph_objs_dir) # Load plotly schema - project_root = opath.dirname(outdir) - plot_schema_path = opath.join( - project_root, "codegen", "resources", "plot-schema.json" - ) - + project_root = codedir.parent + plot_schema_path = project_root / "resources" / "plot-schema.json" with open(plot_schema_path, "r") as f: plotly_schema = json.load(f) @@ -193,18 +176,18 @@ def perform_codegen(outdir, noformat=False): # Write out the JSON data for the validators os.makedirs(validators_dir, exist_ok=True) - write_validator_json(outdir, validator_params) + write_validator_json(codedir, validator_params) # Alls alls = {} # Write out datatypes for node in all_compound_nodes: - write_datatype_py(outdir, node) + write_datatype_py(codedir, node) # Deprecated # These are deprecated legacy datatypes like graph_objs.Marker - write_deprecated_datatypes(outdir) + write_deprecated_datatypes(codedir) # Write figure class to graph_objs data_validator = get_data_validator_instance(base_traces_node) @@ -212,7 +195,7 @@ def perform_codegen(outdir, noformat=False): frame_validator = frame_node.get_validator_instance() write_figure_classes( - outdir, + codedir, base_traces_node, data_validator, layout_validator, @@ -242,7 +225,7 @@ def perform_codegen(outdir, noformat=False): # Write plotly/graph_objs/graph_objs.py # This is for backward compatibility. It just imports everything from # graph_objs/__init__.py - write_graph_objs_graph_objs(outdir) + write_graph_objs_graph_objs(codedir) # Add Figure and FigureWidget root_datatype_imports = datatype_rel_class_imports[()] @@ -287,12 +270,13 @@ def __getattr__(import_name): # __all__ for path_parts, class_names in alls.items(): if path_parts and class_names: - filepath = opath.join(outdir, "graph_objs", *path_parts, "__init__.py") + filepath = codedir / "graph_objs" + filepath = filepath.joinpath(*path_parts) / "__init__.py" with open(filepath, "at") as f: f.write(f"\n__all__ = {class_names}") # Output datatype __init__.py files - graph_objs_pkg = opath.join(outdir, "graph_objs") + graph_objs_pkg = codedir / "graph_objs" for path_parts in datatype_rel_class_imports: rel_classes = sorted(datatype_rel_class_imports[path_parts]) rel_modules = sorted(datatype_rel_module_imports.get(path_parts, [])) @@ -317,18 +301,13 @@ def __getattr__(import_name): graph_objects_rel_classes, init_extra=optional_figure_widget_import, ) - graph_objects_path = opath.join(outdir, "graph_objects", "__init__.py") - os.makedirs(opath.join(outdir, "graph_objects"), exist_ok=True) + graph_objects_path = codedir / "graph_objects" + graph_objects_path.mkdir(parents=True, exist_ok=True) + graph_objects_path /= "__init__.py" with open(graph_objects_path, "wt") as f: f.write("# ruff: noqa: F401\n") f.write(graph_objects_init_source) - # Run code formatter on output directories - if noformat: - print("skipping reformatting") - else: - reformat_code(outdir) - if __name__ == "__main__": if len(sys.argv) != 2: diff --git a/codegen/compatibility.py b/bin/codegen/compatibility.py similarity index 93% rename from codegen/compatibility.py rename to bin/codegen/compatibility.py index 2b57685ff2e..fdb4fe4b576 100644 --- a/codegen/compatibility.py +++ b/bin/codegen/compatibility.py @@ -1,5 +1,4 @@ from io import StringIO -from os import path as opath from codegen.utils import write_source_py @@ -150,15 +149,15 @@ def build_deprecation_message(class_name, base_type, new): """ -def write_deprecated_datatypes(outdir): +def write_deprecated_datatypes(codedir): """ Build source code for deprecated datatype class definitions and write them to a file Parameters ---------- - outdir : - Root outdir in which the graph_objs package should reside + codedir : + Root directory in which the graph_objs package should reside Returns ------- @@ -166,13 +165,13 @@ def write_deprecated_datatypes(outdir): """ # Generate source code datatype_source = build_deprecated_datatypes_py() - filepath = opath.join(outdir, "graph_objs", "_deprecations.py") + filepath = codedir / "graph_objs" / "_deprecations.py" # Write file write_source_py(datatype_source, filepath) -def write_graph_objs_graph_objs(outdir): +def write_graph_objs_graph_objs(codedir): """ Write the plotly/graph_objs/graph_objs.py file @@ -183,14 +182,14 @@ def write_graph_objs_graph_objs(outdir): Parameters ---------- - outdir : str - Root outdir in which the graph_objs package should reside + codedir : str + Root directory in which the graph_objs package should reside Returns ------- None """ - filepath = opath.join(outdir, "graph_objs", "graph_objs.py") + filepath = codedir / "graph_objs" / "graph_objs.py" with open(filepath, "wt") as f: f.write( """\ diff --git a/codegen/datatypes.py b/bin/codegen/datatypes.py similarity index 98% rename from codegen/datatypes.py rename to bin/codegen/datatypes.py index 28b11d1fc59..d29e4f715a3 100644 --- a/codegen/datatypes.py +++ b/bin/codegen/datatypes.py @@ -1,6 +1,5 @@ -import os.path as opath -import textwrap from io import StringIO +import textwrap from codegen.utils import CAVEAT, write_source_py @@ -219,6 +218,9 @@ def _subplot_re_match(self, prop): else: property_docstring = property_description + # Fix `][`. + property_docstring = property_docstring.replace("][", "]\\[") + # Write get property buffer.write( f'''\ @@ -595,14 +597,6 @@ def write_datatype_py(outdir, node): None """ - # Build file path - # filepath = opath.join(outdir, "graph_objs", *node.parent_path_parts, "__init__.py") - filepath = opath.join( - outdir, "graph_objs", *node.parent_path_parts, "_" + node.name_undercase + ".py" - ) - - # Generate source code + filepath = (outdir / "graph_objs").joinpath(*node.parent_path_parts) / f"_{node.name_undercase}.py" datatype_source = build_datatype_py(node) - - # Write file write_source_py(datatype_source, filepath, leading_newlines=2) diff --git a/codegen/figure.py b/bin/codegen/figure.py similarity index 99% rename from codegen/figure.py rename to bin/codegen/figure.py index a15d806937c..b0ed1026793 100644 --- a/codegen/figure.py +++ b/bin/codegen/figure.py @@ -1,5 +1,4 @@ from io import StringIO -from os import path as opath from codegen.datatypes import ( reindent_validator_description, @@ -705,7 +704,7 @@ def add_{method_prefix}{singular_name}(self""" def write_figure_classes( - outdir, + codedir, trace_node, data_validator, layout_validator, @@ -720,8 +719,8 @@ def write_figure_classes( Parameters ---------- - outdir : str - Root outdir in which the graph_objs package should reside + codedir : str + Root directory in which the graph_objs package should reside trace_node : PlotlyNode Root trace node (the node that is the parent of all of the individual trace nodes like bar, scatter, etc.) @@ -768,5 +767,5 @@ def write_figure_classes( ) # Format and write to file - filepath = opath.join(outdir, "graph_objs", f"_{fig_classname.lower()}.py") + filepath = codedir / "graph_objs" / f"_{fig_classname.lower()}.py" write_source_py(figure_source, filepath) diff --git a/codegen/utils.py b/bin/codegen/utils.py similarity index 99% rename from codegen/utils.py rename to bin/codegen/utils.py index 3d660328e51..2cc4e018811 100644 --- a/codegen/utils.py +++ b/bin/codegen/utils.py @@ -1,11 +1,9 @@ -import os -import os.path as opath -import textwrap from collections import ChainMap from importlib import import_module from io import StringIO -from typing import List import re +import textwrap +from typing import List CAVEAT = """ @@ -35,10 +33,7 @@ def write_source_py(py_source, filepath, leading_newlines=0): """ if py_source: # Make dir if needed - filedir = opath.dirname(filepath) - # The exist_ok kwarg is only supported with Python 3, but that's ok since - # codegen is only supported with Python 3 anyway - os.makedirs(filedir, exist_ok=True) + filepath.parent.mkdir(exist_ok=True) # Write file py_source = "\n" * leading_newlines + py_source @@ -121,7 +116,7 @@ def write_init_py(pkg_root, path_parts, rel_modules=(), rel_classes=(), init_ext init_source = build_from_imports_py(rel_modules, rel_classes, init_extra) # Write file - filepath = opath.join(pkg_root, *path_parts, "__init__.py") + filepath = pkg_root.joinpath(*path_parts) / "__init__.py" write_source_py(init_source, filepath) @@ -168,6 +163,9 @@ def format_description(desc): # replace {2D arrays} with 2D lists desc = desc.replace("{2D arrays}", "2D lists") + # replace '][' with ']\[' to avoid confusion with Markdown reference links + desc = desc.replace("][", r"]\\[") + return desc diff --git a/codegen/validators.py b/bin/codegen/validators.py similarity index 94% rename from codegen/validators.py rename to bin/codegen/validators.py index 4cef19fa29b..04ea65d2f8a 100644 --- a/codegen/validators.py +++ b/bin/codegen/validators.py @@ -1,4 +1,3 @@ -import os.path as opath import json import _plotly_utils.basevalidators @@ -54,7 +53,7 @@ def get_data_validator_params(base_trace_node: TraceNode, store: dict): } -def write_validator_json(outdir, params: dict): +def write_validator_json(codedir, params: dict): """ Write out a JSON serialization of the validator arguments for all validators (keyed by f"{parent_name}.{plotly_name}) @@ -64,8 +63,8 @@ def write_validator_json(outdir, params: dict): Parameters ---------- - outdir : str - Root outdir in which the validators package should reside + codedir : str + Root directory in which the validators package should reside params : dict Dictionary to store the JSON data for the validator Returns @@ -78,7 +77,7 @@ def write_validator_json(outdir, params: dict): raise ValueError("Expected params to be a dictionary") # Write file - filepath = opath.join(outdir, "validators", "_validators.json") + filepath = codedir / "validators" / "_validators.json" with open(filepath, "w") as f: f.write(json.dumps(params, indent=4)) diff --git a/bin/generate_code.py b/bin/generate_code.py new file mode 100644 index 00000000000..94fef3991cf --- /dev/null +++ b/bin/generate_code.py @@ -0,0 +1,27 @@ +"""Generate code.""" + +import argparse +from pathlib import Path + +import utils + + +def main(): + """Main driver.""" + + args = parse_args() + codedir = utils.select_code_directory(args) + utils.perform_codegen(codedir, noformat=args.noformat) + + +def parse_args(): + """Parse command-line arguments.""" + + parser = argparse.ArgumentParser() + parser.add_argument("--noformat", action="store_true", help="prevent reformatting") + parser.add_argument("--codedir", type=Path, help="code directory") + return parser.parse_args() + + +if __name__ == "__main__": + main() diff --git a/bin/generate_reference_pages.py b/bin/generate_reference_pages.py new file mode 100644 index 00000000000..cba3d633276 --- /dev/null +++ b/bin/generate_reference_pages.py @@ -0,0 +1,58 @@ +"""Generate the code reference pages and navigation.""" + +import os +from pathlib import Path + +import mkdocs_gen_files + + +# Saving Markdown files? +temp_dir = os.getenv("MKDOCS_TEMP_DIR", None) +if temp_dir is not None: + temp_dir = Path(temp_dir) + +# Set up the generation engine. +nav = mkdocs_gen_files.Nav() + +# Match each Python file. +for path in sorted(Path("plotly").rglob("*.py")): + # Documentation path. + module_path = path.relative_to(".").with_suffix("") + doc_path = path.relative_to(".").with_suffix(".md") + full_doc_path = Path("reference", doc_path) + + # Handle dunder special cases. + parts = tuple(module_path.parts) + if parts[-1] == "__init__": + parts = parts[:-1] + doc_path = doc_path.with_name("index.md") + full_doc_path = full_doc_path.with_name("index.md") + elif parts[-1] == "__main__": + continue + + # Save constructed data. + nav[parts] = doc_path.as_posix() + mkdocs_gen_files.set_edit_path(full_doc_path, path) + + # Save in-memory file. + with mkdocs_gen_files.open(full_doc_path, "w") as writer: + ident = ".".join(parts) + writer.write(f"# {ident}\n\n") + writer.write(f"::: {ident}") + + # Save to disk if requested. + if temp_dir is not None: + temp_path = temp_dir / doc_path + temp_path.parent.mkdir(exist_ok=True, parents=True) + with open(temp_path, "w") as writer: + ident = ".".join(parts) + writer.write(f"# {ident}\n\n") + writer.write(f"::: {ident}") + +# Generate navigation summary. +with mkdocs_gen_files.open("reference/SUMMARY.md", "w") as writer: + writer.writelines(nav.build_literate_nav()) +if temp_dir is not None: + temp_path = temp_dir / "SUMMARY.md" + with open(temp_path, "w") as writer: + writer.writelines(nav.build_literate_nav()) diff --git a/bin/updatejs.py b/bin/updatejs.py new file mode 100644 index 00000000000..0604bd2c421 --- /dev/null +++ b/bin/updatejs.py @@ -0,0 +1,32 @@ +"""Check code.""" + +import argparse +from pathlib import Path + +import utils + + +def main(): + """Main driver.""" + + args = parse_args() + codedir = utils.select_code_directory(args) + if args.dev: + utils.update_plotlyjs_dev(codedir) + else: + version = utils.plotly_js_version() + print(version) + utils.update_plotlyjs(version, codedir) + + +def parse_args(): + """Parse command-line arguments.""" + + parser = argparse.ArgumentParser() + parser.add_argument("--dev", action="store_true", help="development version") + parser.add_argument("--codedir", type=Path, help="code directory") + return parser.parse_args() + + +if __name__ == "__main__": + main() diff --git a/commands.py b/bin/utils.py similarity index 79% rename from commands.py rename to bin/utils.py index 01f158380ce..0dd39a4ddf2 100644 --- a/commands.py +++ b/bin/utils.py @@ -1,9 +1,9 @@ """Utility command runner.""" -import argparse import logging import json import os +from pathlib import Path import platform import requests import shutil @@ -11,25 +11,29 @@ import sys import time -from codegen import perform_codegen, lint_code, reformat_code +from codegen import perform_codegen LOGGER = logging.getLogger(__name__) -PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) -NODE_ROOT = os.path.join(PROJECT_ROOT, "js") -NODE_MODULES = os.path.join(NODE_ROOT, "node_modules") -WIDGET_TARGETS = [ - os.path.join(PROJECT_ROOT, "plotly", "package_data", "widgetbundle.js"), -] - +PROJECT_ROOT = Path(__file__).parent.parent +NODE_ROOT = PROJECT_ROOT / "js" +NODE_MODULES = NODE_ROOT / "node_modules" +PLOT_SCHEMA = PROJECT_ROOT / "resources" / "plot-schema.json" +WIDGET_TARGETS = [PROJECT_ROOT / "plotly" / "package_data" / "widgetbundle.js"] NPM_PATH = os.pathsep.join( [ - os.path.join(NODE_ROOT, "node_modules", ".bin"), + str(NODE_ROOT / "node_modules" / ".bin"), os.environ.get("PATH", os.defpath), ] ) +def select_code_directory(args): + """Select root directory for plotly package.""" + + return args.codedir if args.codedir else PROJECT_ROOT / "plotly" + + def plotly_js_version(): """Load plotly.js version from js/package.json.""" @@ -101,8 +105,7 @@ def install_js_deps(local): def overwrite_schema_local(uri): """Replace plot-schema.json with local copy.""" - path = os.path.join(PROJECT_ROOT, "codegen", "resources", "plot-schema.json") - shutil.copyfile(uri, path) + shutil.copyfile(uri, PLOT_SCHEMA) def overwrite_schema(url): @@ -110,8 +113,7 @@ def overwrite_schema(url): req = requests.get(url) assert req.status_code == 200 - path = os.path.join(PROJECT_ROOT, "codegen", "resources", "plot-schema.json") - with open(path, "wb") as f: + with open(PLOT_SCHEMA, "wb") as f: f.write(req.content) @@ -235,12 +237,12 @@ def update_bundle(plotly_js_version): overwrite_plotlyjs_version_file(plotlyjs_version) -def update_plotlyjs(plotly_js_version, outdir): +def update_plotlyjs(plotly_js_version, codedir): """Update project to a new version of plotly.js.""" update_bundle(plotly_js_version) update_schema(plotly_js_version) - perform_codegen(outdir) + perform_codegen(codedir) # FIXME: switch to argparse @@ -306,64 +308,8 @@ def update_schema_bundle_from_master(): install_js_deps(local) -def update_plotlyjs_dev(outdir): +def update_plotlyjs_dev(codedir): """Update project to a new development version of plotly.js.""" update_schema_bundle_from_master() - perform_codegen(outdir) - - -def parse_args(): - """Parse command-line arguments.""" - - parser = argparse.ArgumentParser() - subparsers = parser.add_subparsers(dest="cmd", help="Available subcommands") - - p_codegen = subparsers.add_parser("codegen", help="generate code") - p_codegen.add_argument( - "--noformat", action="store_true", help="prevent reformatting" - ) - - subparsers.add_parser("lint", help="lint code") - - subparsers.add_parser("format", help="reformat code") - - subparsers.add_parser("updateplotlyjsdev", help="update plotly.js for development") - - subparsers.add_parser("updateplotlyjs", help="update plotly.js") - - return parser.parse_args() - - -def main(): - """Main driver.""" - - project_root = os.path.dirname(os.path.realpath(__file__)) - outdir = os.path.join(project_root, "plotly") - - args = parse_args() - - if args.cmd == "codegen": - perform_codegen(outdir, noformat=args.noformat) - - elif args.cmd == "format": - reformat_code(outdir) - - elif args.cmd == "lint": - lint_code(outdir) - - elif args.cmd == "updateplotlyjsdev": - update_plotlyjs_dev(outdir) - - elif args.cmd == "updateplotlyjs": - version = plotly_js_version() - print(version) - update_plotlyjs(version, outdir) - - else: - print(f"unknown command {args.cmd}", file=sys.stderr) - sys.exit(1) - - -if __name__ == "__main__": - main() + perform_codegen(codedir) diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000000..c92823309e2 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,40 @@ +site_name: "Plotly.py Docs" +docs_dir: pages +site_dir: docs + +plugins: + - search + - gen-files: + scripts: + - bin/generate_reference_pages.py + - literate-nav: + nav_file: SUMMARY.md + - mkdocstrings: + handlers: + python: + options: + docstring_style: google + show_source: false + show_root_heading: true + show_root_toc_entry: true + merge_init_into_class: true + +nav: +- Home: index.md +- API Reference: reference/ +- Project: + - license.md + - conduct.md + - contributing.md + +theme: + name: "material" + +markdown_extensions: +- def_list +- markdown_include.include: + base_path: docs +- footnotes + +exclude_docs: > + *~ diff --git a/pages/conduct.md b/pages/conduct.md new file mode 100644 index 00000000000..14a6a4a839a --- /dev/null +++ b/pages/conduct.md @@ -0,0 +1 @@ +{!../CODE_OF_CONDUCT.md!} diff --git a/pages/contributing.md b/pages/contributing.md new file mode 100644 index 00000000000..568877b4a4f --- /dev/null +++ b/pages/contributing.md @@ -0,0 +1 @@ +{!../CONTRIBUTING.md!} diff --git a/pages/index.md b/pages/index.md new file mode 100644 index 00000000000..7d211af2649 --- /dev/null +++ b/pages/index.md @@ -0,0 +1 @@ +{!../README.md!} diff --git a/pages/license.md b/pages/license.md new file mode 100644 index 00000000000..9f03cbeae23 --- /dev/null +++ b/pages/license.md @@ -0,0 +1 @@ +{!../LICENSE.txt!} diff --git a/plotly/_subplots.py b/plotly/_subplots.py index 8930fd9e41c..65091aa460d 100644 --- a/plotly/_subplots.py +++ b/plotly/_subplots.py @@ -122,9 +122,9 @@ def make_subplots( Per subplot specifications of subplot type, row/column spanning, and spacing. - ex1: specs=[[{}, {}], [{'colspan': 2}, None]] + ex1: `specs=[[{}, {}], [{'colspan': 2}, None]\\] - ex2: specs=[[{'rowspan': 2}, {}], [None, {}]] + ex2: `specs=[[{'rowspan': 2}, {}], [None, {}]\\] - Indices of the outer list correspond to subplot grid rows starting from the top, if start_cell='top-left', @@ -141,7 +141,7 @@ def make_subplots( - Use None for a blank a subplot cell (or to move past a col/row span). - - Note that specs[0][0] has the specs of the 'start_cell' subplot. + - Note that `specs[0][0\\] has the specs of the 'start_cell' subplot. - Each item in 'specs' is a dictionary. The available keys are: @@ -246,8 +246,8 @@ def make_subplots( >>> fig = make_subplots(rows=2) This is the format of your plot grid: - [ (1,1) xaxis1,yaxis1 ] - [ (2,1) xaxis2,yaxis2 ] + \\[ (1,1) xaxis1,yaxis1 \\] + \\[ (2,1) xaxis2,yaxis2 \\] >>> fig.add_scatter(y=[2, 1, 3], row=1, col=1) # doctest: +ELLIPSIS Figure(...) @@ -262,8 +262,8 @@ def make_subplots( >>> fig = make_subplots(rows=2, shared_xaxes=True) This is the format of your plot grid: - [ (1,1) xaxis1,yaxis1 ] - [ (2,1) xaxis2,yaxis2 ] + \\[ (1,1) xaxis1,yaxis1 \\] + \\[ (2,1) xaxis2,yaxis2 \\] >>> fig.add_scatter(y=[2, 1, 3], row=1, col=1) # doctest: +ELLIPSIS Figure(...) @@ -278,8 +278,8 @@ def make_subplots( ... [{'colspan': 2}, None]]) This is the format of your plot grid: - [ (1,1) xaxis1,yaxis1 ] [ (1,2) xaxis2,yaxis2 ] - [ (2,1) xaxis3,yaxis3 - ] + \\[ (1,1) xaxis1,yaxis1 ] [ (1,2) xaxis2,yaxis2 \\] + \\[ (2,1) xaxis3,yaxis3 - \\] >>> fig.add_trace(go.Scatter(x=[1,2,3], y=[2,1,2]), row=1, col=1) # doctest: +ELLIPSIS Figure(...) @@ -294,10 +294,10 @@ def make_subplots( >>> fig = make_subplots(insets=[{'cell': (1,1), 'l': 0.7, 'b': 0.3}]) This is the format of your plot grid: - [ (1,1) xaxis1,yaxis1 ] + \\[ (1,1) xaxis1,yaxis1 \\] With insets: - [ xaxis2,yaxis2 ] over [ (1,1) xaxis1,yaxis1 ] + \\[ xaxis2,yaxis2 ] over [ (1,1) xaxis1,yaxis1 \\] >>> fig.add_scatter(x=[1,2,3], y=[2,1,1]) # doctest: +ELLIPSIS Figure(...) @@ -310,8 +310,8 @@ def make_subplots( >>> fig = make_subplots(rows=2, subplot_titles=('Plot 1','Plot 2')) This is the format of your plot grid: - [ (1,1) x1,y1 ] - [ (2,1) x2,y2 ] + \\[ (1,1) x1,y1 \\] + \\[ (2,1) x2,y2 \\] >>> fig.add_scatter(x=[1,2,3], y=[2,1,2], row=1, col=1) # doctest: +ELLIPSIS Figure(...) diff --git a/plotly/basedatatypes.py b/plotly/basedatatypes.py index 1384e08d543..1e7b0fdd7d2 100644 --- a/plotly/basedatatypes.py +++ b/plotly/basedatatypes.py @@ -2320,8 +2320,8 @@ def append_trace(self, trace, row, col): >>> fig = tools.make_subplots(rows=2) This is the format of your plot grid: - [ (1,1) x1,y1 ] - [ (2,1) x2,y2 ] + \\[ (1,1) x1,y1 \\] + \\[ (2,1) x2,y2 \\] >>> fig.append_trace(go.Scatter(x=[1,2,3], y=[2,1,2]), row=1, col=1) >>> fig.append_trace(go.Scatter(x=[1,2,3], y=[2,1,2]), row=2, col=1) diff --git a/plotly/express/_core.py b/plotly/express/_core.py index d2dbc84c0e7..53eda20a5a7 100644 --- a/plotly/express/_core.py +++ b/plotly/express/_core.py @@ -101,9 +101,9 @@ def reset(self): def set_mapbox_access_token(token): """ Arguments: - token: A Mapbox token to be used in `plotly.express.scatter_mapbox` and \ - `plotly.express.line_mapbox` figures. See \ - https://docs.mapbox.com/help/how-mapbox-works/access-tokens/ for more details + token (Mapbox token): A Mapbox token to be used in `plotly.express.scatter_mapbox` \ + and `plotly.express.line_mapbox` figures. See \ + https://docs.mapbox.com/help/how-mapbox-works/access-tokens/ for more details. """ global MAPBOX_TOKEN MAPBOX_TOKEN = token @@ -115,7 +115,7 @@ def get_trendline_results(fig): the `trendline` argument set to `"ols"`). Arguments: - fig: the output of a `plotly.express` charting call + fig (figure): the output of a `plotly.express` charting call Returns: A `pandas.DataFrame` with a column "px_fit_results" containing the `statsmodels` results objects, along with columns identifying the subset of the data the diff --git a/plotly/figure_factory/_violin.py b/plotly/figure_factory/_violin.py index 55924e69238..0574406dfe6 100644 --- a/plotly/figure_factory/_violin.py +++ b/plotly/figure_factory/_violin.py @@ -513,7 +513,7 @@ def create_violin( >>> norm_params=[(0, 1.2), (0.7, 1), (-0.5, 1.4), (0.3, 1), (0.8, 0.9)] >>> for i, letter in enumerate("ABCDE"): - ... y[gr == letter] *=norm_params[i][1]+ norm_params[i][0] + ... y[gr == letter] *= norm_params[i]\\[1]+ norm_params[i]\\[0] >>> df = pd.DataFrame(dict(Score=y, Group=gr)) >>> # create violin fig @@ -540,7 +540,7 @@ def create_violin( >>> norm_params=[(0, 1.2), (0.7, 1), (-0.5, 1.4), (0.3, 1), (0.8, 0.9)] >>> for i, letter in enumerate("ABCDE"): - ... y[gr == letter] *=norm_params[i][1]+ norm_params[i][0] + ... y[gr == letter] *= norm_params[i]\\[1]+ norm_params[i]\\[0] >>> df = pd.DataFrame(dict(Score=y, Group=gr)) >>> # define header params diff --git a/plotly/subplots.py b/plotly/subplots.py index e41839039e8..76c8baba41b 100644 --- a/plotly/subplots.py +++ b/plotly/subplots.py @@ -105,7 +105,7 @@ def make_subplots( - Use None for a blank a subplot cell (or to move past a col/row span). - - Note that specs[0][0] has the specs of the 'start_cell' subplot. + - Note that `specs[0][0\\] has the specs of the 'start_cell' subplot. - Each item in 'specs' is a dictionary. The available keys are: @@ -210,8 +210,8 @@ def make_subplots( >>> fig = make_subplots(rows=2) This is the format of your plot grid: - [ (1,1) xaxis1,yaxis1 ] - [ (2,1) xaxis2,yaxis2 ] + \\[ (1,1) xaxis1,yaxis1 \\] + \\[ (2,1) xaxis2,yaxis2 \\] >>> fig.add_scatter(y=[2, 1, 3], row=1, col=1) # doctest: +ELLIPSIS Figure(...) @@ -226,8 +226,8 @@ def make_subplots( >>> fig = make_subplots(rows=2, shared_xaxes=True) This is the format of your plot grid: - [ (1,1) xaxis1,yaxis1 ] - [ (2,1) xaxis2,yaxis2 ] + \\[ (1,1) xaxis1,yaxis1 \\] + \\[ (2,1) xaxis2,yaxis2 \\] >>> fig.add_scatter(y=[2, 1, 3], row=1, col=1) # doctest: +ELLIPSIS Figure(...) @@ -242,8 +242,8 @@ def make_subplots( ... [{'colspan': 2}, None]]) This is the format of your plot grid: - [ (1,1) xaxis1,yaxis1 ] [ (1,2) xaxis2,yaxis2 ] - [ (2,1) xaxis3,yaxis3 - ] + \\[ (1,1) xaxis1,yaxis1 ] [ (1,2) xaxis2,yaxis2 \\] + \\[ (2,1) xaxis3,yaxis3 - \\] >>> fig.add_trace(go.Scatter(x=[1,2,3], y=[2,1,2]), row=1, col=1) # doctest: +ELLIPSIS Figure(...) @@ -258,10 +258,10 @@ def make_subplots( >>> fig = make_subplots(insets=[{'cell': (1,1), 'l': 0.7, 'b': 0.3}]) This is the format of your plot grid: - [ (1,1) xaxis1,yaxis1 ] + \\[ (1,1) xaxis1,yaxis1 \\] With insets: - [ xaxis2,yaxis2 ] over [ (1,1) xaxis1,yaxis1 ] + \\[ xaxis2,yaxis2 \\] over \\[ (1,1) xaxis1,yaxis1 \\] >>> fig.add_scatter(x=[1,2,3], y=[2,1,1]) # doctest: +ELLIPSIS Figure(...) @@ -274,8 +274,8 @@ def make_subplots( >>> fig = make_subplots(rows=2, subplot_titles=('Plot 1','Plot 2')) This is the format of your plot grid: - [ (1,1) x1,y1 ] - [ (2,1) x2,y2 ] + \\[ (1,1) x1,y1 \\] + \\[ (2,1) x2,y2 \\] >>> fig.add_scatter(x=[1,2,3], y=[2,1,2], row=1, col=1) # doctest: +ELLIPSIS Figure(...) diff --git a/plotly/tools.py b/plotly/tools.py index 67f828204d7..a425eec3913 100644 --- a/plotly/tools.py +++ b/plotly/tools.py @@ -244,8 +244,8 @@ def make_subplots( fig = tools.make_subplots(rows=2) This is the format of your plot grid: - [ (1,1) x1,y1 ] - [ (2,1) x2,y2 ] + \\[ (1,1) x1,y1 \\] + \\[ (2,1) x2,y2 \\] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2])] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2], xaxis='x2', yaxis='y2')] @@ -257,8 +257,8 @@ def make_subplots( fig = tools.make_subplots(rows=2, shared_xaxes=True) This is the format of your plot grid: - [ (1,1) x1,y1 ] - [ (2,1) x1,y2 ] + \\[ (1,1) x1,y1 \\] + \\[ (2,1) x1,y2 \\] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2])] @@ -271,8 +271,8 @@ def make_subplots( [{'colspan': 2}, None]]) This is the format of your plot grid! - [ (1,1) x1,y1 ] [ (1,2) x2,y2 ] - [ (2,1) x3,y3 - ] + \\[ (1,1) x1,y1 ] [ (1,2) x2,y2 \\] + \\[ (2,1) x3,y3 - \\] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2])] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2], xaxis='x2', yaxis='y2')] @@ -283,10 +283,10 @@ def make_subplots( fig = tools.make_subplots(insets=[{'cell': (1,1), 'l': 0.7, 'b': 0.3}]) This is the format of your plot grid! - [ (1,1) x1,y1 ] + \\[ (1,1) x1,y1 \\] With insets: - [ x2,y2 ] over [ (1,1) x1,y1 ] + \\[ x2,y2 \\] over \\[ (1,1) x1,y1 \\] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2])] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2], xaxis='x2', yaxis='y2')] @@ -296,8 +296,8 @@ def make_subplots( fig = tools.make_subplots(rows=2, subplot_titles=('Plot 1','Plot 2')) This is the format of your plot grid: - [ (1,1) x1,y1 ] - [ (2,1) x2,y2 ] + \\[ (1,1) x1,y1 \\] + \\[ (2,1) x2,y2 \\] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2])] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2], xaxis='x2', yaxis='y2')] @@ -308,10 +308,10 @@ def make_subplots( subplot_titles=('','Inset')) This is the format of your plot grid! - [ (1,1) x1,y1 ] + \\[ (1,1) x1,y1 \\] With insets: - [ x2,y2 ] over [ (1,1) x1,y1 ] + \\[ x2,y2 \\] over \\[ (1,1) x1,y1 \\] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2])] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2], xaxis='x2', yaxis='y2')] diff --git a/pyproject.toml b/pyproject.toml index 49a821cfb2d..a209ae83089 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -50,7 +50,13 @@ dev_core = [ dev_build = [ "plotly[dev_core]", "build", - "jupyter" + "jupyter", + "markdown-include", + "mkdocs", + "mkdocs-material", + "mkdocstrings[python]", + "mkdocs-gen-files", + "mkdocs-literate-nav" ] dev_optional = [ "plotly[dev_build]", @@ -69,6 +75,7 @@ dev_optional = [ "plotly-geo", "polars[timezone]", "pyarrow", + "pydoclint", "pyshp", "pytz", "scikit-image", diff --git a/codegen/resources/plot-schema.json b/resources/plot-schema.json similarity index 99% rename from codegen/resources/plot-schema.json rename to resources/plot-schema.json index fe1eb67d81a..5648e294fe0 100644 --- a/codegen/resources/plot-schema.json +++ b/resources/plot-schema.json @@ -1012,7 +1012,7 @@ "valType": "string" }, "text": { - "description": "Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline (
), bold (), italics (), hyperlinks (). Tags , , , , are also supported.", + "description": "Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline (`
`), bold (``), italics (``), hyperlinks (``). Tags ``, ``, ``, ``, ``, and `` are also supported.", "editType": "calc+arraydraw", "valType": "string" }, @@ -3442,6 +3442,12 @@ "min": 30, "valType": "number" }, + "maxheight": { + "description": "Sets the max height (in px) of the legend, or max height ratio (reference height * ratio) if less than one. Default value is: 0.5 for horizontal legends; 1 for vertical legends. The minimum allowed height is 30px. For a ratio of 0.5, the legend will take up to 50% of the reference height before displaying a scrollbar. The reference height is the full layout height except for vertically oriented legends with a `yref` of `\"paper\"`, where the reference height is the plot height.", + "editType": "legend", + "min": 0, + "valType": "number" + }, "orientation": { "description": "Sets the orientation of the legend.", "dflt": "v", @@ -3896,7 +3902,7 @@ "symbol": { "editType": "plot", "icon": { - "description": "Sets the symbol icon image (map.layer.layout.icon-image). Full list: https://www.map.com/maki-icons/", + "description": "Sets the symbol icon image (map.layer.layout.icon-image). Full list: https://www.mapbox.com/maki-icons/", "dflt": "marker", "editType": "plot", "valType": "string" @@ -5919,7 +5925,7 @@ "valType": "info_array" }, "rangemode": { - "description": "If *tozero*, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. If *normal*, the range is computed in relation to the extrema of the input data (same behavior as for cartesian axes).", + "description": "If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. If *normal*, the range is computed in relation to the extrema of the input data (same behavior as for cartesian axes).", "dflt": "tozero", "editType": "calc", "valType": "enumerated", @@ -6745,7 +6751,7 @@ "valType": "string" }, "text": { - "description": "Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline (
), bold (), italics (), hyperlinks (). Tags , , , , are also supported.", + "description": "Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline (`
`), bold (``), italics (``), hyperlinks (``). Tags ``, ``, ``, ``, ``, and `` are also supported.", "editType": "calc", "valType": "string" }, @@ -7325,7 +7331,7 @@ "valType": "info_array" }, "rangemode": { - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", "dflt": "normal", "editType": "plot", "valType": "enumerated", @@ -8064,7 +8070,7 @@ "valType": "info_array" }, "rangemode": { - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", "dflt": "normal", "editType": "plot", "valType": "enumerated", @@ -8803,7 +8809,7 @@ "valType": "info_array" }, "rangemode": { - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", "dflt": "normal", "editType": "plot", "valType": "enumerated", @@ -14032,7 +14038,7 @@ "role": "object" }, "rangemode": { - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", "dflt": "normal", "editType": "plot", "valType": "enumerated", @@ -14705,7 +14711,7 @@ ] }, "ticklabelposition": { - "description": "Determines where tick labels are drawn with respect to the axis Please note that top or bottom has no effect on x axes or when `ticklabelmode` is set to *period*. Similarly left or right has no effect on y axes or when `ticklabelmode` is set to *period*. Has no effect on *multicategory* axes or when `tickson` is set to *boundaries*. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match.", + "description": "Determines where tick labels are drawn with respect to the axis. Please note that top or bottom has no effect on x axes or when `ticklabelmode` is set to *period* or when `tickson` is set to *boundaries*. Similarly, left or right has no effect on y axes or when `ticklabelmode` is set to *period* or when `tickson` is set to *boundaries*. Has no effect on *multicategory* axes. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match.", "dflt": "outside", "editType": "calc", "valType": "enumerated", @@ -14959,6 +14965,16 @@ "editType": "ticks", "valType": "color" }, + "zerolinelayer": { + "description": "Sets the layer on which this zeroline is displayed. If *above traces*, this zeroline is displayed above all the subplot's traces If *below traces*, this zeroline is displayed below all the subplot's traces, but above the grid lines. Limitation: *zerolinelayer* currently has no effect if the *zorder* property is set on any trace.", + "dflt": "below traces", + "editType": "plot", + "valType": "enumerated", + "values": [ + "above traces", + "below traces" + ] + }, "zerolinewidth": { "description": "Sets the width (in px) of the zero line.", "dflt": 1, @@ -15583,7 +15599,7 @@ "role": "object" }, "rangemode": { - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", "dflt": "normal", "editType": "plot", "valType": "enumerated", @@ -15939,7 +15955,7 @@ ] }, "ticklabelposition": { - "description": "Determines where tick labels are drawn with respect to the axis Please note that top or bottom has no effect on x axes or when `ticklabelmode` is set to *period*. Similarly left or right has no effect on y axes or when `ticklabelmode` is set to *period*. Has no effect on *multicategory* axes or when `tickson` is set to *boundaries*. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match.", + "description": "Determines where tick labels are drawn with respect to the axis. Please note that top or bottom has no effect on x axes or when `ticklabelmode` is set to *period* or when `tickson` is set to *boundaries*. Similarly, left or right has no effect on y axes or when `ticklabelmode` is set to *period* or when `tickson` is set to *boundaries*. Has no effect on *multicategory* axes. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match.", "dflt": "outside", "editType": "calc", "valType": "enumerated", @@ -16193,6 +16209,16 @@ "editType": "ticks", "valType": "color" }, + "zerolinelayer": { + "description": "Sets the layer on which this zeroline is displayed. If *above traces*, this zeroline is displayed above all the subplot's traces If *below traces*, this zeroline is displayed below all the subplot's traces, but above the grid lines. Limitation: *zerolinelayer* currently has no effect if the *zorder* property is set on any trace.", + "dflt": "below traces", + "editType": "plot", + "valType": "enumerated", + "values": [ + "above traces", + "below traces" + ] + }, "zerolinewidth": { "description": "Sets the width (in px) of the zero line.", "dflt": 1, @@ -17808,6 +17834,17 @@ "overlay" ] }, + "path": { + "arrayOk": true, + "description": "Sets a custom path for pattern fill. Use with no `shape` or `solidity`, provide an SVG path string for the regions of the square from (0,0) to (`size`,`size`) to color.", + "editType": "style", + "valType": "string" + }, + "pathsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `path`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shape": { "arrayOk": true, @@ -19835,6 +19872,17 @@ "overlay" ] }, + "path": { + "arrayOk": true, + "description": "Sets a custom path for pattern fill. Use with no `shape` or `solidity`, provide an SVG path string for the regions of the square from (0,0) to (`size`,`size`) to color.", + "editType": "style", + "valType": "string" + }, + "pathsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `path`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shape": { "arrayOk": true, @@ -22654,7 +22702,7 @@ "valType": "info_array" }, "rangemode": { - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data.", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data.", "dflt": "normal", "editType": "calc", "valType": "enumerated", @@ -23325,7 +23373,7 @@ "valType": "info_array" }, "rangemode": { - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data.", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data.", "dflt": "normal", "editType": "calc", "valType": "enumerated", @@ -30170,7 +30218,7 @@ ] }, "value": { - "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (=,<,>=,>,<=) *value* is expected to be a number. When `operation` is set to one of the interval values ([],(),[),(],][,)(,](,)[) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound.", + "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (`=,<,>=,>,<=`) *value* is expected to be a number. When `operation` is set to one of the interval values (`[],(),[),(],][,)(,](,)[`) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound.", "dflt": 0, "editType": "calc", "valType": "any" @@ -31981,7 +32029,7 @@ ] }, "value": { - "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (=,<,>=,>,<=) *value* is expected to be a number. When `operation` is set to one of the interval values ([],(),[),(],][,)(,](,)[) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound.", + "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (`=,<,>=,>,<=`) *value* is expected to be a number. When `operation` is set to one of the interval values (`[],(),[),(],][,)(,](,)[`) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound.", "dflt": 0, "editType": "calc", "valType": "any" @@ -37562,6 +37610,17 @@ "overlay" ] }, + "path": { + "arrayOk": true, + "description": "Sets a custom path for pattern fill. Use with no `shape` or `solidity`, provide an SVG path string for the regions of the square from (0,0) to (`size`,`size`) to color.", + "editType": "style", + "valType": "string" + }, + "pathsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `path`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shape": { "arrayOk": true, @@ -41225,6 +41284,17 @@ "overlay" ] }, + "path": { + "arrayOk": true, + "description": "Sets a custom path for pattern fill. Use with no `shape` or `solidity`, provide an SVG path string for the regions of the square from (0,0) to (`size`,`size`) to color.", + "editType": "style", + "valType": "string" + }, + "pathsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `path`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shape": { "arrayOk": true, @@ -44199,7 +44269,7 @@ ] }, "value": { - "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (=,<,>=,>,<=) *value* is expected to be a number. When `operation` is set to one of the interval values ([],(),[),(],][,)(,](,)[) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound.", + "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (`=,<,>=,>,<=`) *value* is expected to be a number. When `operation` is set to one of the interval values (`[],(),[),(],][,)(,](,)[`) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound.", "dflt": 0, "editType": "calc", "valType": "any" @@ -46456,6 +46526,17 @@ "overlay" ] }, + "path": { + "arrayOk": true, + "description": "Sets a custom path for pattern fill. Use with no `shape` or `solidity`, provide an SVG path string for the regions of the square from (0,0) to (`size`,`size`) to color.", + "editType": "style", + "valType": "string" + }, + "pathsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `path`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shape": { "arrayOk": true, @@ -56226,6 +56307,17 @@ "overlay" ] }, + "path": { + "arrayOk": true, + "description": "Sets a custom path for pattern fill. Use with no `shape` or `solidity`, provide an SVG path string for the regions of the square from (0,0) to (`size`,`size`) to color.", + "editType": "style", + "valType": "string" + }, + "pathsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `path`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shape": { "arrayOk": true, @@ -58612,6 +58704,17 @@ "overlay" ] }, + "path": { + "arrayOk": true, + "description": "Sets a custom path for pattern fill. Use with no `shape` or `solidity`, provide an SVG path string for the regions of the square from (0,0) to (`size`,`size`) to color.", + "editType": "style", + "valType": "string" + }, + "pathsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `path`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shape": { "arrayOk": true, @@ -72077,7 +72180,7 @@ }, "symbol": { "arrayOk": true, - "description": "Sets the marker symbol. Full list: https://www.map.com/maki-icons/ Note that the array `marker.color` and `marker.size` are only available for *circle* symbols.", + "description": "Sets the marker symbol. Full list: https://www.mapbox.com/maki-icons/ Note that the array `marker.color` and `marker.size` are only available for *circle* symbols.", "dflt": "circle", "editType": "calc", "valType": "string" @@ -87705,6 +87808,17 @@ "overlay" ] }, + "path": { + "arrayOk": true, + "description": "Sets a custom path for pattern fill. Use with no `shape` or `solidity`, provide an SVG path string for the regions of the square from (0,0) to (`size`,`size`) to color.", + "editType": "style", + "valType": "string" + }, + "pathsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `path`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shape": { "arrayOk": true, @@ -92346,6 +92460,17 @@ "overlay" ] }, + "path": { + "arrayOk": true, + "description": "Sets a custom path for pattern fill. Use with no `shape` or `solidity`, provide an SVG path string for the regions of the square from (0,0) to (`size`,`size`) to color.", + "editType": "style", + "valType": "string" + }, + "pathsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `path`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shape": { "arrayOk": true, diff --git a/uv.lock b/uv.lock index e882459b0f6..987dadda1bf 100644 --- a/uv.lock +++ b/uv.lock @@ -246,6 +246,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/25/8a/c46dcc25341b5bce5472c718902eb3d38600a903b14fa6aeecef3f21a46f/asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2", size = 26918, upload-time = "2024-11-30T04:30:10.946Z" }, ] +[[package]] +name = "astunparse" +version = "1.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six", marker = "python_full_version < '3.9'" }, + { name = "wheel", marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/af/4182184d3c338792894f34a62672919db7ca008c89abee9b564dd34d8029/astunparse-1.6.3.tar.gz", hash = "sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872", size = 18290, upload-time = "2019-12-22T18:12:13.129Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl", hash = "sha256:c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8", size = 12732, upload-time = "2019-12-22T18:12:11.297Z" }, +] + [[package]] name = "async-lru" version = "2.0.4" @@ -325,6 +338,45 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/78/cc/e27fd6493bbce8dbea7e6c1bc861fe3d3bc22c4f7c81f4c3befb8ff5bfaf/backports.zoneinfo-0.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:4a0f800587060bf8880f954dbef70de6c11bbe59c673c3d818921f042f9954a6", size = 38967, upload-time = "2020-06-23T13:51:13.735Z" }, ] +[[package]] +name = "backrefs" +version = "5.7.post1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/df/30/903f35159c87ff1d92aa3fcf8cb52de97632a21e0ae43ed940f5d033e01a/backrefs-5.7.post1.tar.gz", hash = "sha256:8b0f83b770332ee2f1c8244f4e03c77d127a0fa529328e6a0e77fa25bee99678", size = 6582270, upload-time = "2024-06-16T18:38:20.166Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/24/bb/47fc255d1060dcfd55b460236380edd8ebfc5b2a42a0799ca90c9fc983e3/backrefs-5.7.post1-py310-none-any.whl", hash = "sha256:c5e3fd8fd185607a7cb1fefe878cfb09c34c0be3c18328f12c574245f1c0287e", size = 380429, upload-time = "2024-06-16T18:38:10.131Z" }, + { url = "https://files.pythonhosted.org/packages/89/72/39ef491caef3abae945f5a5fd72830d3b596bfac0630508629283585e213/backrefs-5.7.post1-py311-none-any.whl", hash = "sha256:712ea7e494c5bf3291156e28954dd96d04dc44681d0e5c030adf2623d5606d51", size = 392234, upload-time = "2024-06-16T18:38:12.283Z" }, + { url = "https://files.pythonhosted.org/packages/6a/00/33403f581b732ca70fdebab558e8bbb426a29c34e0c3ed674a479b74beea/backrefs-5.7.post1-py312-none-any.whl", hash = "sha256:a6142201c8293e75bce7577ac29e1a9438c12e730d73a59efdd1b75528d1a6c5", size = 398110, upload-time = "2024-06-16T18:38:14.257Z" }, + { url = "https://files.pythonhosted.org/packages/5d/ea/df0ac74a26838f6588aa012d5d801831448b87d0a7d0aefbbfabbe894870/backrefs-5.7.post1-py38-none-any.whl", hash = "sha256:ec61b1ee0a4bfa24267f6b67d0f8c5ffdc8e0d7dc2f18a2685fd1d8d9187054a", size = 369477, upload-time = "2024-06-16T18:38:16.196Z" }, + { url = "https://files.pythonhosted.org/packages/6f/e8/e43f535c0a17a695e5768670fc855a0e5d52dc0d4135b3915bfa355f65ac/backrefs-5.7.post1-py39-none-any.whl", hash = "sha256:05c04af2bf752bb9a6c9dcebb2aff2fab372d3d9d311f2a138540e307756bd3a", size = 380429, upload-time = "2024-06-16T18:38:18.079Z" }, +] + +[[package]] +name = "backrefs" +version = "5.9" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/a7/312f673df6a79003279e1f55619abbe7daebbb87c17c976ddc0345c04c7b/backrefs-5.9.tar.gz", hash = "sha256:808548cb708d66b82ee231f962cb36faaf4f2baab032f2fbb783e9c2fdddaa59", size = 5765857, upload-time = "2025-06-22T19:34:13.97Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/19/4d/798dc1f30468134906575156c089c492cf79b5a5fd373f07fe26c4d046bf/backrefs-5.9-py310-none-any.whl", hash = "sha256:db8e8ba0e9de81fcd635f440deab5ae5f2591b54ac1ebe0550a2ca063488cd9f", size = 380267, upload-time = "2025-06-22T19:34:05.252Z" }, + { url = "https://files.pythonhosted.org/packages/55/07/f0b3375bf0d06014e9787797e6b7cc02b38ac9ff9726ccfe834d94e9991e/backrefs-5.9-py311-none-any.whl", hash = "sha256:6907635edebbe9b2dc3de3a2befff44d74f30a4562adbb8b36f21252ea19c5cf", size = 392072, upload-time = "2025-06-22T19:34:06.743Z" }, + { url = "https://files.pythonhosted.org/packages/9d/12/4f345407259dd60a0997107758ba3f221cf89a9b5a0f8ed5b961aef97253/backrefs-5.9-py312-none-any.whl", hash = "sha256:7fdf9771f63e6028d7fee7e0c497c81abda597ea45d6b8f89e8ad76994f5befa", size = 397947, upload-time = "2025-06-22T19:34:08.172Z" }, + { url = "https://files.pythonhosted.org/packages/10/bf/fa31834dc27a7f05e5290eae47c82690edc3a7b37d58f7fb35a1bdbf355b/backrefs-5.9-py313-none-any.whl", hash = "sha256:cc37b19fa219e93ff825ed1fed8879e47b4d89aa7a1884860e2db64ccd7c676b", size = 399843, upload-time = "2025-06-22T19:34:09.68Z" }, + { url = "https://files.pythonhosted.org/packages/fc/24/b29af34b2c9c41645a9f4ff117bae860291780d73880f449e0b5d948c070/backrefs-5.9-py314-none-any.whl", hash = "sha256:df5e169836cc8acb5e440ebae9aad4bf9d15e226d3bad049cf3f6a5c20cc8dc9", size = 411762, upload-time = "2025-06-22T19:34:11.037Z" }, + { url = "https://files.pythonhosted.org/packages/41/ff/392bff89415399a979be4a65357a41d92729ae8580a66073d8ec8d810f98/backrefs-5.9-py39-none-any.whl", hash = "sha256:f48ee18f6252b8f5777a22a00a09a85de0ca931658f1dd96d4406a34f3748c60", size = 380265, upload-time = "2025-06-22T19:34:12.405Z" }, +] + [[package]] name = "beautifulsoup4" version = "4.13.4" @@ -743,7 +795,7 @@ name = "click" version = "8.1.8" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorama", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593, upload-time = "2024-12-21T18:38:44.339Z" } wheels = [ @@ -1066,6 +1118,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604, upload-time = "2021-03-08T10:59:24.45Z" }, ] +[[package]] +name = "docstring-parser-fork" +version = "0.0.12" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c6/72/61f7243ad62e14d527f93304cd4f333e681295aa3ef9bcc4afc36c07001a/docstring_parser_fork-0.0.12.tar.gz", hash = "sha256:b44c5e0be64ae80f395385f01497d381bd094a57221fd9ff020987d06857b2a0", size = 31608, upload-time = "2025-01-13T07:57:43.351Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/50/0d/eed05d4b1065f11f8bef2f57440759d4dacc73c22780764948bfa4aaa304/docstring_parser_fork-0.0.12-py3-none-any.whl", hash = "sha256:55d7cbbc8b367655efd64372b9a0b33a49bae930a8ddd5cdc4c6112312e28a87", size = 42185, upload-time = "2025-01-13T07:57:39.993Z" }, +] + [[package]] name = "exceptiongroup" version = "1.3.0" @@ -1437,6 +1498,55 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/be/82/79e02a0e5dd4aca81894842b9d6522624a40048a913c6384efb2987a4144/geopandas-1.1.0-py3-none-any.whl", hash = "sha256:b19b18bdc736ee05b237f5e9184211c452768a4c883f7d7f8421b0cbe1da5875", size = 338014, upload-time = "2025-06-01T16:54:29.239Z" }, ] +[[package]] +name = "ghp-import" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d9/29/d40217cbe2f6b1359e00c6c307bb3fc876ba74068cbab3dde77f03ca0dc4/ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343", size = 10943, upload-time = "2022-05-02T15:47:16.11Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/ec/67fbef5d497f86283db54c22eec6f6140243aae73265799baaaa19cd17fb/ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619", size = 11034, upload-time = "2022-05-02T15:47:14.552Z" }, +] + +[[package]] +name = "griffe" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "astunparse", marker = "python_full_version < '3.9'" }, + { name = "colorama", marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/05/e9/b2c86ad9d69053e497a24ceb25d661094fb321ab4ed39a8b71793dcbae82/griffe-1.4.0.tar.gz", hash = "sha256:8fccc585896d13f1221035d32c50dec65830c87d23f9adb9b1e6f3d63574f7f5", size = 381028, upload-time = "2024-10-11T12:53:54.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/7c/e9e66869c2e4c9b378474e49c993128ec0131ef4721038b6d06e50538caf/griffe-1.4.0-py3-none-any.whl", hash = "sha256:e589de8b8c137e99a46ec45f9598fc0ac5b6868ce824b24db09c02d117b89bc5", size = 127015, upload-time = "2024-10-11T12:53:52.383Z" }, +] + +[[package]] +name = "griffe" +version = "1.7.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "colorama", marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a9/3e/5aa9a61f7c3c47b0b52a1d930302992229d191bf4bc76447b324b731510a/griffe-1.7.3.tar.gz", hash = "sha256:52ee893c6a3a968b639ace8015bec9d36594961e156e23315c8e8e51401fa50b", size = 395137, upload-time = "2025-04-23T11:29:09.147Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/c6/5c20af38c2a57c15d87f7f38bee77d63c1d2a3689f74fefaf35915dd12b2/griffe-1.7.3-py3-none-any.whl", hash = "sha256:c6b3ee30c2f0f17f30bcdef5068d6ab7a2a4f1b8bf1a3e74b56fffd21e1c5f75", size = 129303, upload-time = "2025-04-23T11:29:07.145Z" }, +] + [[package]] name = "h11" version = "0.16.0" @@ -2787,6 +2897,55 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl", hash = "sha256:4f88541fe7f3c545561b754d86121abd9c6d4d8b312381046a78dcd794fddc7c", size = 7894, upload-time = "2025-04-26T20:14:09.363Z" }, ] +[[package]] +name = "markdown" +version = "3.7" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "importlib-metadata", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/54/28/3af612670f82f4c056911fbbbb42760255801b3068c48de792d354ff4472/markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2", size = 357086, upload-time = "2024-08-16T15:55:17.812Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/08/83871f3c50fc983b88547c196d11cf8c3340e37c32d2e9d6152abe2c61f7/Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803", size = 106349, upload-time = "2024-08-16T15:55:16.176Z" }, +] + +[[package]] +name = "markdown" +version = "3.8.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "importlib-metadata", version = "8.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d7/c2/4ab49206c17f75cb08d6311171f2d65798988db4360c4d1485bd0eedd67c/markdown-3.8.2.tar.gz", hash = "sha256:247b9a70dd12e27f67431ce62523e675b866d254f900c4fe75ce3dda62237c45", size = 362071, upload-time = "2025-06-19T17:12:44.483Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/2b/34cc11786bc00d0f04d0f5fdc3a2b1ae0b6239eef72d3d345805f9ad92a1/markdown-3.8.2-py3-none-any.whl", hash = "sha256:5c83764dbd4e00bdd94d85a19b8d55ccca20fe35b2e678a1422b380324dd5f24", size = 106827, upload-time = "2025-06-19T17:12:42.994Z" }, +] + +[[package]] +name = "markdown-include" +version = "0.8.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "markdown", version = "3.8.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ad/d8/66bf162fe6c1adb619f94a6da599323eecacf15b6d57469d0fd0421c10df/markdown-include-0.8.1.tar.gz", hash = "sha256:1d0623e0fc2757c38d35df53752768356162284259d259c486b4ab6285cdbbe3", size = 21873, upload-time = "2023-02-07T09:47:26.608Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/e2/c4d20b21a05fe0fee571649cebc05f7f72e80b1a743f932e7326125e6c9e/markdown_include-0.8.1-py3-none-any.whl", hash = "sha256:32f0635b9cfef46997b307e2430022852529f7a5b87c0075c504283e7cc7db53", size = 18837, upload-time = "2023-02-07T09:47:25.03Z" }, +] + [[package]] name = "markdown-it-py" version = "3.0.0" @@ -3093,6 +3252,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, ] +[[package]] +name = "mergedeep" +version = "1.3.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3a/41/580bb4006e3ed0361b8151a01d324fb03f420815446c7def45d02f74c270/mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8", size = 4661, upload-time = "2021-02-05T18:55:30.623Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/19/04f9b178c2d8a15b076c8b5140708fa6ffc5601fb6f1e975537072df5b2a/mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307", size = 6354, upload-time = "2021-02-05T18:55:29.583Z" }, +] + [[package]] name = "mistune" version = "3.1.3" @@ -3106,6 +3274,277 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/01/4d/23c4e4f09da849e127e9f123241946c23c1e30f45a88366879e064211815/mistune-3.1.3-py3-none-any.whl", hash = "sha256:1a32314113cff28aa6432e99e522677c8587fd83e3d51c29b82a52409c842bd9", size = 53410, upload-time = "2025-03-19T14:27:23.451Z" }, ] +[[package]] +name = "mkdocs" +version = "1.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "ghp-import" }, + { name = "importlib-metadata", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "importlib-metadata", version = "8.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "jinja2" }, + { name = "markdown", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "markdown", version = "3.8.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "markupsafe", version = "2.1.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "markupsafe", version = "3.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mergedeep" }, + { name = "mkdocs-get-deps" }, + { name = "packaging" }, + { name = "pathspec" }, + { name = "pyyaml" }, + { name = "pyyaml-env-tag", version = "0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pyyaml-env-tag", version = "1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "watchdog", version = "4.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "watchdog", version = "6.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bc/c6/bbd4f061bd16b378247f12953ffcb04786a618ce5e904b8c5a01a0309061/mkdocs-1.6.1.tar.gz", hash = "sha256:7b432f01d928c084353ab39c57282f29f92136665bdd6abf7c1ec8d822ef86f2", size = 3889159, upload-time = "2024-08-30T12:24:06.899Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/5b/dbc6a8cddc9cfa9c4971d59fb12bb8d42e161b7e7f8cc89e49137c5b279c/mkdocs-1.6.1-py3-none-any.whl", hash = "sha256:db91759624d1647f3f34aa0c3f327dd2601beae39a366d6e064c03468d35c20e", size = 3864451, upload-time = "2024-08-30T12:24:05.054Z" }, +] + +[[package]] +name = "mkdocs-autorefs" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "markdown", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "markupsafe", version = "2.1.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "mkdocs", marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fb/ae/0f1154c614d6a8b8a36fff084e5b82af3a15f7d2060cf0dcdb1c53297a71/mkdocs_autorefs-1.2.0.tar.gz", hash = "sha256:a86b93abff653521bda71cf3fc5596342b7a23982093915cb74273f67522190f", size = 40262, upload-time = "2024-09-01T18:29:18.514Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/26/4d39d52ea2219604053a4d05b98e90d6a335511cc01806436ec4886b1028/mkdocs_autorefs-1.2.0-py3-none-any.whl", hash = "sha256:d588754ae89bd0ced0c70c06f58566a4ee43471eeeee5202427da7de9ef85a2f", size = 16522, upload-time = "2024-09-01T18:29:16.605Z" }, +] + +[[package]] +name = "mkdocs-autorefs" +version = "1.4.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "markdown", version = "3.8.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "markupsafe", version = "3.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mkdocs", marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/47/0c/c9826f35b99c67fa3a7cddfa094c1a6c43fafde558c309c6e4403e5b37dc/mkdocs_autorefs-1.4.2.tar.gz", hash = "sha256:e2ebe1abd2b67d597ed19378c0fff84d73d1dbce411fce7a7cc6f161888b6749", size = 54961, upload-time = "2025-05-20T13:09:09.886Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/dc/fc063b78f4b769d1956319351704e23ebeba1e9e1d6a41b4b602325fd7e4/mkdocs_autorefs-1.4.2-py3-none-any.whl", hash = "sha256:83d6d777b66ec3c372a1aad4ae0cf77c243ba5bcda5bf0c6b8a2c5e7a3d89f13", size = 24969, upload-time = "2025-05-20T13:09:08.237Z" }, +] + +[[package]] +name = "mkdocs-gen-files" +version = "0.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mkdocs" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/48/85/2d634462fd59136197d3126ca431ffb666f412e3db38fd5ce3a60566303e/mkdocs_gen_files-0.5.0.tar.gz", hash = "sha256:4c7cf256b5d67062a788f6b1d035e157fc1a9498c2399be9af5257d4ff4d19bc", size = 7539, upload-time = "2023-04-27T19:48:04.894Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/0f/1e55b3fd490ad2cecb6e7b31892d27cb9fc4218ec1dab780440ba8579e74/mkdocs_gen_files-0.5.0-py3-none-any.whl", hash = "sha256:7ac060096f3f40bd19039e7277dd3050be9a453c8ac578645844d4d91d7978ea", size = 8380, upload-time = "2023-04-27T19:48:07.059Z" }, +] + +[[package]] +name = "mkdocs-get-deps" +version = "0.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "importlib-metadata", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "importlib-metadata", version = "8.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "mergedeep" }, + { name = "platformdirs", version = "4.3.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "platformdirs", version = "4.3.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/98/f5/ed29cd50067784976f25ed0ed6fcd3c2ce9eb90650aa3b2796ddf7b6870b/mkdocs_get_deps-0.2.0.tar.gz", hash = "sha256:162b3d129c7fad9b19abfdcb9c1458a651628e4b1dea628ac68790fb3061c60c", size = 10239, upload-time = "2023-11-20T17:51:09.981Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/d4/029f984e8d3f3b6b726bd33cafc473b75e9e44c0f7e80a5b29abc466bdea/mkdocs_get_deps-0.2.0-py3-none-any.whl", hash = "sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134", size = 9521, upload-time = "2023-11-20T17:51:08.587Z" }, +] + +[[package]] +name = "mkdocs-literate-nav" +version = "0.6.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "mkdocs", marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4d/f9/c48a04f3cf484f8016a343c1d7d99c3a1ef01dbb33ceabb1d02e0ecabda7/mkdocs_literate_nav-0.6.1.tar.gz", hash = "sha256:78a7ab6d878371728acb0cdc6235c9b0ffc6e83c997b037f4a5c6ff7cef7d759", size = 16437, upload-time = "2023-09-10T22:17:16.815Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/3b/e00d839d3242844c77e248f9572dd34644a04300839a60fe7d6bf652ab19/mkdocs_literate_nav-0.6.1-py3-none-any.whl", hash = "sha256:e70bdc4a07050d32da79c0b697bd88e9a104cf3294282e9cb20eec94c6b0f401", size = 13182, upload-time = "2023-09-10T22:17:18.751Z" }, +] + +[[package]] +name = "mkdocs-literate-nav" +version = "0.6.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "mkdocs", marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f6/5f/99aa379b305cd1c2084d42db3d26f6de0ea9bf2cc1d10ed17f61aff35b9a/mkdocs_literate_nav-0.6.2.tar.gz", hash = "sha256:760e1708aa4be86af81a2b56e82c739d5a8388a0eab1517ecfd8e5aa40810a75", size = 17419, upload-time = "2025-03-18T21:53:09.711Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/84/b5b14d2745e4dd1a90115186284e9ee1b4d0863104011ab46abb7355a1c3/mkdocs_literate_nav-0.6.2-py3-none-any.whl", hash = "sha256:0a6489a26ec7598477b56fa112056a5e3a6c15729f0214bea8a4dbc55bd5f630", size = 13261, upload-time = "2025-03-18T21:53:08.1Z" }, +] + +[[package]] +name = "mkdocs-material" +version = "9.6.15" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "babel" }, + { name = "backrefs", version = "5.7.post1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "backrefs", version = "5.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "colorama" }, + { name = "jinja2" }, + { name = "markdown", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "markdown", version = "3.8.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mkdocs" }, + { name = "mkdocs-material-extensions" }, + { name = "paginate" }, + { name = "pygments" }, + { name = "pymdown-extensions", version = "10.15", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pymdown-extensions", version = "10.16", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/95/c1/f804ba2db2ddc2183e900befe7dad64339a34fa935034e1ab405289d0a97/mkdocs_material-9.6.15.tar.gz", hash = "sha256:64adf8fa8dba1a17905b6aee1894a5aafd966d4aeb44a11088519b0f5ca4f1b5", size = 3951836, upload-time = "2025-07-01T10:14:15.671Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/30/dda19f0495a9096b64b6b3c07c4bfcff1c76ee0fc521086d53593f18b4c0/mkdocs_material-9.6.15-py3-none-any.whl", hash = "sha256:ac969c94d4fe5eb7c924b6d2f43d7db41159ea91553d18a9afc4780c34f2717a", size = 8716840, upload-time = "2025-07-01T10:14:13.18Z" }, +] + +[[package]] +name = "mkdocs-material-extensions" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/79/9b/9b4c96d6593b2a541e1cb8b34899a6d021d208bb357042823d4d2cabdbe7/mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443", size = 11847, upload-time = "2023-11-22T19:09:45.208Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5b/54/662a4743aa81d9582ee9339d4ffa3c8fd40a4965e033d77b9da9774d3960/mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31", size = 8728, upload-time = "2023-11-22T19:09:43.465Z" }, +] + +[[package]] +name = "mkdocstrings" +version = "0.26.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "click", marker = "python_full_version < '3.9'" }, + { name = "importlib-metadata", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "jinja2", marker = "python_full_version < '3.9'" }, + { name = "markdown", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "markupsafe", version = "2.1.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "mkdocs", marker = "python_full_version < '3.9'" }, + { name = "mkdocs-autorefs", version = "1.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "platformdirs", version = "4.3.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pymdown-extensions", version = "10.15", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e6/bf/170ff04de72227f715d67da32950c7b8434449f3805b2ec3dd1085db4d7c/mkdocstrings-0.26.1.tar.gz", hash = "sha256:bb8b8854d6713d5348ad05b069a09f3b79edbc6a0f33a34c6821141adb03fe33", size = 92677, upload-time = "2024-09-06T10:26:06.736Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/23/cc/8ba127aaee5d1e9046b0d33fa5b3d17da95a9d705d44902792e0569257fd/mkdocstrings-0.26.1-py3-none-any.whl", hash = "sha256:29738bfb72b4608e8e55cc50fb8a54f325dc7ebd2014e4e3881a49892d5983cf", size = 29643, upload-time = "2024-09-06T10:26:04.498Z" }, +] + +[package.optional-dependencies] +python = [ + { name = "mkdocstrings-python", version = "1.11.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, +] + +[[package]] +name = "mkdocstrings" +version = "0.29.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "importlib-metadata", version = "8.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "jinja2", marker = "python_full_version >= '3.9'" }, + { name = "markdown", version = "3.8.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "markupsafe", version = "3.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mkdocs", marker = "python_full_version >= '3.9'" }, + { name = "mkdocs-autorefs", version = "1.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pymdown-extensions", version = "10.16", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/41/e8/d22922664a627a0d3d7ff4a6ca95800f5dde54f411982591b4621a76225d/mkdocstrings-0.29.1.tar.gz", hash = "sha256:8722f8f8c5cd75da56671e0a0c1bbed1df9946c0cef74794d6141b34011abd42", size = 1212686, upload-time = "2025-03-31T08:33:11.997Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/14/22533a578bf8b187e05d67e2c1721ce10e3f526610eebaf7a149d557ea7a/mkdocstrings-0.29.1-py3-none-any.whl", hash = "sha256:37a9736134934eea89cbd055a513d40a020d87dfcae9e3052c2a6b8cd4af09b6", size = 1631075, upload-time = "2025-03-31T08:33:09.661Z" }, +] + +[package.optional-dependencies] +python = [ + { name = "mkdocstrings-python", version = "1.16.12", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, +] + +[[package]] +name = "mkdocstrings-python" +version = "1.11.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "griffe", version = "1.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "mkdocs-autorefs", version = "1.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "mkdocstrings", version = "0.26.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/ba/534c934cd0a809f51c91332d6ed278782ee4126b8ba8db02c2003f162b47/mkdocstrings_python-1.11.1.tar.gz", hash = "sha256:8824b115c5359304ab0b5378a91f6202324a849e1da907a3485b59208b797322", size = 166890, upload-time = "2024-09-03T17:20:54.904Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2f/f2/2a2c48fda645ac6bbe73bcc974587a579092b6868e6ff8bc6d177f4db38a/mkdocstrings_python-1.11.1-py3-none-any.whl", hash = "sha256:a21a1c05acef129a618517bb5aae3e33114f569b11588b1e7af3e9d4061a71af", size = 109297, upload-time = "2024-09-03T17:20:52.621Z" }, +] + +[[package]] +name = "mkdocstrings-python" +version = "1.16.12" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "griffe", version = "1.7.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mkdocs-autorefs", version = "1.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mkdocstrings", version = "0.29.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "typing-extensions", version = "4.14.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bf/ed/b886f8c714fd7cccc39b79646b627dbea84cd95c46be43459ef46852caf0/mkdocstrings_python-1.16.12.tar.gz", hash = "sha256:9b9eaa066e0024342d433e332a41095c4e429937024945fea511afe58f63175d", size = 206065, upload-time = "2025-06-03T12:52:49.276Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/dd/a24ee3de56954bfafb6ede7cd63c2413bb842cc48eb45e41c43a05a33074/mkdocstrings_python-1.16.12-py3-none-any.whl", hash = "sha256:22ded3a63b3d823d57457a70ff9860d5a4de9e8b1e482876fc9baabaf6f5f374", size = 124287, upload-time = "2025-06-03T12:52:47.819Z" }, +] + [[package]] name = "more-itertools" version = "10.5.0" @@ -3843,6 +4282,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, ] +[[package]] +name = "paginate" +version = "0.5.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/46/68dde5b6bc00c1296ec6466ab27dddede6aec9af1b99090e1107091b3b84/paginate-0.5.7.tar.gz", hash = "sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945", size = 19252, upload-time = "2024-08-25T14:17:24.139Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/90/96/04b8e52da071d28f5e21a805b19cb9390aa17a47462ac87f5e2696b9566d/paginate-0.5.7-py2.py3-none-any.whl", hash = "sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591", size = 13746, upload-time = "2024-08-25T14:17:22.55Z" }, +] + [[package]] name = "pandas" version = "2.0.3" @@ -4003,6 +4451,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl", hash = "sha256:978e4ac767ec4ba5b86c6eaa52e5a2a3bc748a2ca839e8cc798f1cc6ce6efb0f", size = 18905, upload-time = "2024-05-06T19:51:39.271Z" }, ] +[[package]] +name = "pathspec" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043, upload-time = "2023-12-10T22:30:45Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" }, +] + [[package]] name = "patsy" version = "1.0.1" @@ -4296,6 +4753,14 @@ dev = [ { name = "inflect", version = "7.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "jupyter" }, { name = "kaleido" }, + { name = "markdown-include" }, + { name = "mkdocs" }, + { name = "mkdocs-gen-files" }, + { name = "mkdocs-literate-nav", version = "0.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "mkdocs-literate-nav", version = "0.6.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mkdocs-material" }, + { name = "mkdocstrings", version = "0.26.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version < '3.9'" }, + { name = "mkdocstrings", version = "0.29.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version >= '3.9'" }, { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, @@ -4312,6 +4777,8 @@ dev = [ { name = "polars", version = "1.30.0", source = { registry = "https://pypi.org/simple" }, extra = ["timezone"], marker = "python_full_version >= '3.9'" }, { name = "pyarrow", version = "17.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "pyarrow", version = "20.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pydoclint", version = "0.5.11", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pydoclint", version = "0.6.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "pyshp" }, { name = "pytest", version = "8.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "pytest", version = "8.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, @@ -4336,6 +4803,14 @@ dev = [ dev-build = [ { name = "build" }, { name = "jupyter" }, + { name = "markdown-include" }, + { name = "mkdocs" }, + { name = "mkdocs-gen-files" }, + { name = "mkdocs-literate-nav", version = "0.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "mkdocs-literate-nav", version = "0.6.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mkdocs-material" }, + { name = "mkdocstrings", version = "0.26.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version < '3.9'" }, + { name = "mkdocstrings", version = "0.29.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version >= '3.9'" }, { name = "pytest", version = "8.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "pytest", version = "8.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "requests" }, @@ -4359,6 +4834,14 @@ dev-optional = [ { name = "inflect", version = "7.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "jupyter" }, { name = "kaleido" }, + { name = "markdown-include" }, + { name = "mkdocs" }, + { name = "mkdocs-gen-files" }, + { name = "mkdocs-literate-nav", version = "0.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "mkdocs-literate-nav", version = "0.6.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mkdocs-material" }, + { name = "mkdocstrings", version = "0.26.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version < '3.9'" }, + { name = "mkdocstrings", version = "0.29.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version >= '3.9'" }, { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, @@ -4375,6 +4858,8 @@ dev-optional = [ { name = "polars", version = "1.30.0", source = { registry = "https://pypi.org/simple" }, extra = ["timezone"], marker = "python_full_version >= '3.9'" }, { name = "pyarrow", version = "17.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "pyarrow", version = "20.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pydoclint", version = "0.5.11", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pydoclint", version = "0.6.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "pyshp" }, { name = "pytest", version = "8.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "pytest", version = "8.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, @@ -4416,6 +4901,12 @@ requires-dist = [ { name = "inflect", marker = "extra == 'dev-optional'" }, { name = "jupyter", marker = "extra == 'dev-build'" }, { name = "kaleido", marker = "extra == 'kaleido'", specifier = ">=1.0.0" }, + { name = "markdown-include", marker = "extra == 'dev-build'" }, + { name = "mkdocs", marker = "extra == 'dev-build'" }, + { name = "mkdocs-gen-files", marker = "extra == 'dev-build'" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev-build'" }, + { name = "mkdocs-material", marker = "extra == 'dev-build'" }, + { name = "mkdocstrings", extras = ["python"], marker = "extra == 'dev-build'" }, { name = "narwhals", specifier = ">=1.15.1" }, { name = "numpy", marker = "extra == 'dev-optional'" }, { name = "numpy", marker = "extra == 'express'" }, @@ -4431,6 +4922,7 @@ requires-dist = [ { name = "plotly-geo", marker = "extra == 'dev-optional'" }, { name = "polars", extras = ["timezone"], marker = "extra == 'dev-optional'" }, { name = "pyarrow", marker = "extra == 'dev-optional'" }, + { name = "pydoclint", marker = "extra == 'dev-optional'" }, { name = "pyshp", marker = "extra == 'dev-optional'" }, { name = "pytest", marker = "extra == 'dev-core'" }, { name = "pytz", marker = "extra == 'dev-optional'" }, @@ -5113,6 +5605,46 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d4/29/3cade8a924a61f60ccfa10842f75eb12787e1440e2b8660ceffeb26685e7/pydantic_core-2.33.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2807668ba86cb38c6817ad9bc66215ab8584d1d304030ce4f0887336f28a5e27", size = 2066661, upload-time = "2025-04-23T18:33:49.995Z" }, ] +[[package]] +name = "pydoclint" +version = "0.5.11" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "click", marker = "python_full_version < '3.9'" }, + { name = "docstring-parser-fork", marker = "python_full_version < '3.9'" }, + { name = "tomli", marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/dc/cf/f832704703879915ca1701da7e2addec3f1ebcce7456391e734f346ae118/pydoclint-0.5.11.tar.gz", hash = "sha256:abd3e428b1b8a318cafabcbe6355d4ccf27733267b9f2645e0fb967503f5ba8b", size = 48939, upload-time = "2024-12-14T21:18:59.494Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/e8/94e9e035693f211beadfe8e7f6150414d669ecae2d1b3701d450be7a386d/pydoclint-0.5.11-py2.py3-none-any.whl", hash = "sha256:7ea595c80a3f959defeed08752877b7b85bb4a8197df71dd79863258214b48b4", size = 46358, upload-time = "2024-12-14T21:18:58.107Z" }, +] + +[[package]] +name = "pydoclint" +version = "0.6.6" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "click", marker = "python_full_version >= '3.9'" }, + { name = "docstring-parser-fork", marker = "python_full_version >= '3.9'" }, + { name = "tomli", marker = "python_full_version >= '3.9' and python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e6/b8/9ab3bb3642e1a87ad5b51276cc6465542935d44c427d75937216b22eadc0/pydoclint-0.6.6.tar.gz", hash = "sha256:22862a8494d05cdf22574d6533f4c47933c0ae1674b0f8b961d6ef42536eaa69", size = 54488, upload-time = "2025-04-16T07:42:23.518Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bc/05/c714e4dfea5e48140288ee05275e9675fbe1ab1010852ed8c77a388c7ace/pydoclint-0.6.6-py2.py3-none-any.whl", hash = "sha256:7ce8ed36f60f9201bf1c1edacb32c55eb051af80fdd7304480c6419ee0ced43c", size = 48713, upload-time = "2025-04-16T07:42:22.023Z" }, +] + [[package]] name = "pyerfa" version = "2.0.0.3" @@ -5195,6 +5727,44 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293, upload-time = "2025-01-06T17:26:25.553Z" }, ] +[[package]] +name = "pymdown-extensions" +version = "10.15" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "markdown", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pyyaml", marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/08/92/a7296491dbf5585b3a987f3f3fc87af0e632121ff3e490c14b5f2d2b4eb5/pymdown_extensions-10.15.tar.gz", hash = "sha256:0e5994e32155f4b03504f939e501b981d306daf7ec2aa1cd2eb6bd300784f8f7", size = 852320, upload-time = "2025-04-27T23:48:29.183Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/d1/c54e608505776ce4e7966d03358ae635cfd51dff1da6ee421c090dbc797b/pymdown_extensions-10.15-py3-none-any.whl", hash = "sha256:46e99bb272612b0de3b7e7caf6da8dd5f4ca5212c0b273feb9304e236c484e5f", size = 265845, upload-time = "2025-04-27T23:48:27.359Z" }, +] + +[[package]] +name = "pymdown-extensions" +version = "10.16" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "markdown", version = "3.8.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pyyaml", marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1a/0a/c06b542ac108bfc73200677309cd9188a3a01b127a63f20cadc18d873d88/pymdown_extensions-10.16.tar.gz", hash = "sha256:71dac4fca63fabeffd3eb9038b756161a33ec6e8d230853d3cecf562155ab3de", size = 853197, upload-time = "2025-06-21T17:56:36.974Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/d4/10bb14004d3c792811e05e21b5e5dcae805aacb739bd12a0540967b99592/pymdown_extensions-10.16-py3-none-any.whl", hash = "sha256:f5dd064a4db588cb2d95229fc4ee63a1b16cc8b4d0e6145c0899ed8723da1df2", size = 266143, upload-time = "2025-06-21T17:56:35.356Z" }, +] + [[package]] name = "pyogrio" version = "0.11.0" @@ -5749,6 +6319,42 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/19/87/5124b1c1f2412bb95c59ec481eaf936cd32f0fe2a7b16b97b81c4c017a6a/PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8", size = 162312, upload-time = "2024-08-06T20:33:49.073Z" }, ] +[[package]] +name = "pyyaml-env-tag" +version = "0.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "pyyaml", marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fb/8e/da1c6c58f751b70f8ceb1eb25bc25d524e8f14fe16edcce3f4e3ba08629c/pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb", size = 5631, upload-time = "2020-11-12T02:38:26.239Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/66/bbb1dd374f5c870f59c5bb1db0e18cbe7fa739415a24cbd95b2d1f5ae0c4/pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069", size = 3911, upload-time = "2020-11-12T02:38:24.638Z" }, +] + +[[package]] +name = "pyyaml-env-tag" +version = "1.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "pyyaml", marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/2e/79c822141bfd05a853236b504869ebc6b70159afc570e1d5a20641782eaa/pyyaml_env_tag-1.1.tar.gz", hash = "sha256:2eb38b75a2d21ee0475d6d97ec19c63287a7e140231e4214969d0eac923cd7ff", size = 5737, upload-time = "2025-05-13T15:24:01.64Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/11/432f32f8097b03e3cd5fe57e88efb685d964e2e5178a48ed61e841f7fdce/pyyaml_env_tag-1.1-py3-none-any.whl", hash = "sha256:17109e1a528561e32f026364712fee1264bc2ea6715120891174ed1b980d2e04", size = 4722, upload-time = "2025-05-13T15:23:59.629Z" }, +] + [[package]] name = "pyzmq" version = "26.4.0" @@ -7572,6 +8178,97 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8c/e9/e96b5527a85c7deda12d438a33f2ec2cf6ce0aa397906b3469133c1184a6/vaex_viz-0.5.4-py3-none-any.whl", hash = "sha256:7e8d0cc06ac47e8d00cdb2ac2ea679218afe72200234675f3c9645bbbcf53f40", size = 19619, upload-time = "2022-09-23T18:11:17.116Z" }, ] +[[package]] +name = "watchdog" +version = "4.0.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/4f/38/764baaa25eb5e35c9a043d4c4588f9836edfe52a708950f4b6d5f714fd42/watchdog-4.0.2.tar.gz", hash = "sha256:b4dfbb6c49221be4535623ea4474a4d6ee0a9cef4a80b20c28db4d858b64e270", size = 126587, upload-time = "2024-08-11T07:38:01.623Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/b0/219893d41c16d74d0793363bf86df07d50357b81f64bba4cb94fe76e7af4/watchdog-4.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ede7f010f2239b97cc79e6cb3c249e72962404ae3865860855d5cbe708b0fd22", size = 100257, upload-time = "2024-08-11T07:37:04.209Z" }, + { url = "https://files.pythonhosted.org/packages/6d/c6/8e90c65693e87d98310b2e1e5fd7e313266990853b489e85ce8396cc26e3/watchdog-4.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a2cffa171445b0efa0726c561eca9a27d00a1f2b83846dbd5a4f639c4f8ca8e1", size = 92249, upload-time = "2024-08-11T07:37:06.364Z" }, + { url = "https://files.pythonhosted.org/packages/6f/cd/2e306756364a934532ff8388d90eb2dc8bb21fe575cd2b33d791ce05a02f/watchdog-4.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c50f148b31b03fbadd6d0b5980e38b558046b127dc483e5e4505fcef250f9503", size = 92888, upload-time = "2024-08-11T07:37:08.275Z" }, + { url = "https://files.pythonhosted.org/packages/de/78/027ad372d62f97642349a16015394a7680530460b1c70c368c506cb60c09/watchdog-4.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7c7d4bf585ad501c5f6c980e7be9c4f15604c7cc150e942d82083b31a7548930", size = 100256, upload-time = "2024-08-11T07:37:11.017Z" }, + { url = "https://files.pythonhosted.org/packages/59/a9/412b808568c1814d693b4ff1cec0055dc791780b9dc947807978fab86bc1/watchdog-4.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:914285126ad0b6eb2258bbbcb7b288d9dfd655ae88fa28945be05a7b475a800b", size = 92252, upload-time = "2024-08-11T07:37:13.098Z" }, + { url = "https://files.pythonhosted.org/packages/04/57/179d76076cff264982bc335dd4c7da6d636bd3e9860bbc896a665c3447b6/watchdog-4.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:984306dc4720da5498b16fc037b36ac443816125a3705dfde4fd90652d8028ef", size = 92888, upload-time = "2024-08-11T07:37:15.077Z" }, + { url = "https://files.pythonhosted.org/packages/92/f5/ea22b095340545faea37ad9a42353b265ca751f543da3fb43f5d00cdcd21/watchdog-4.0.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1cdcfd8142f604630deef34722d695fb455d04ab7cfe9963055df1fc69e6727a", size = 100342, upload-time = "2024-08-11T07:37:16.393Z" }, + { url = "https://files.pythonhosted.org/packages/cb/d2/8ce97dff5e465db1222951434e3115189ae54a9863aef99c6987890cc9ef/watchdog-4.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d7ab624ff2f663f98cd03c8b7eedc09375a911794dfea6bf2a359fcc266bff29", size = 92306, upload-time = "2024-08-11T07:37:17.997Z" }, + { url = "https://files.pythonhosted.org/packages/49/c4/1aeba2c31b25f79b03b15918155bc8c0b08101054fc727900f1a577d0d54/watchdog-4.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:132937547a716027bd5714383dfc40dc66c26769f1ce8a72a859d6a48f371f3a", size = 92915, upload-time = "2024-08-11T07:37:19.967Z" }, + { url = "https://files.pythonhosted.org/packages/79/63/eb8994a182672c042d85a33507475c50c2ee930577524dd97aea05251527/watchdog-4.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:cd67c7df93eb58f360c43802acc945fa8da70c675b6fa37a241e17ca698ca49b", size = 100343, upload-time = "2024-08-11T07:37:21.935Z" }, + { url = "https://files.pythonhosted.org/packages/ce/82/027c0c65c2245769580605bcd20a1dc7dfd6c6683c8c4e2ef43920e38d27/watchdog-4.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcfd02377be80ef3b6bc4ce481ef3959640458d6feaae0bd43dd90a43da90a7d", size = 92313, upload-time = "2024-08-11T07:37:23.314Z" }, + { url = "https://files.pythonhosted.org/packages/2a/89/ad4715cbbd3440cb0d336b78970aba243a33a24b1a79d66f8d16b4590d6a/watchdog-4.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:980b71510f59c884d684b3663d46e7a14b457c9611c481e5cef08f4dd022eed7", size = 92919, upload-time = "2024-08-11T07:37:24.715Z" }, + { url = "https://files.pythonhosted.org/packages/55/08/1a9086a3380e8828f65b0c835b86baf29ebb85e5e94a2811a2eb4f889cfd/watchdog-4.0.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:aa160781cafff2719b663c8a506156e9289d111d80f3387cf3af49cedee1f040", size = 100255, upload-time = "2024-08-11T07:37:26.862Z" }, + { url = "https://files.pythonhosted.org/packages/6c/3e/064974628cf305831f3f78264800bd03b3358ec181e3e9380a36ff156b93/watchdog-4.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f6ee8dedd255087bc7fe82adf046f0b75479b989185fb0bdf9a98b612170eac7", size = 92257, upload-time = "2024-08-11T07:37:28.253Z" }, + { url = "https://files.pythonhosted.org/packages/23/69/1d2ad9c12d93bc1e445baa40db46bc74757f3ffc3a3be592ba8dbc51b6e5/watchdog-4.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0b4359067d30d5b864e09c8597b112fe0a0a59321a0f331498b013fb097406b4", size = 92886, upload-time = "2024-08-11T07:37:29.52Z" }, + { url = "https://files.pythonhosted.org/packages/68/eb/34d3173eceab490d4d1815ba9a821e10abe1da7a7264a224e30689b1450c/watchdog-4.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:770eef5372f146997638d737c9a3c597a3b41037cfbc5c41538fc27c09c3a3f9", size = 100254, upload-time = "2024-08-11T07:37:30.888Z" }, + { url = "https://files.pythonhosted.org/packages/18/a1/4bbafe7ace414904c2cc9bd93e472133e8ec11eab0b4625017f0e34caad8/watchdog-4.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eeea812f38536a0aa859972d50c76e37f4456474b02bd93674d1947cf1e39578", size = 92249, upload-time = "2024-08-11T07:37:32.193Z" }, + { url = "https://files.pythonhosted.org/packages/f3/11/ec5684e0ca692950826af0de862e5db167523c30c9cbf9b3f4ce7ec9cc05/watchdog-4.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b2c45f6e1e57ebb4687690c05bc3a2c1fb6ab260550c4290b8abb1335e0fd08b", size = 92891, upload-time = "2024-08-11T07:37:34.212Z" }, + { url = "https://files.pythonhosted.org/packages/3b/9a/6f30f023324de7bad8a3eb02b0afb06bd0726003a3550e9964321315df5a/watchdog-4.0.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:10b6683df70d340ac3279eff0b2766813f00f35a1d37515d2c99959ada8f05fa", size = 91775, upload-time = "2024-08-11T07:37:35.567Z" }, + { url = "https://files.pythonhosted.org/packages/87/62/8be55e605d378a154037b9ba484e00a5478e627b69c53d0f63e3ef413ba6/watchdog-4.0.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:f7c739888c20f99824f7aa9d31ac8a97353e22d0c0e54703a547a218f6637eb3", size = 92255, upload-time = "2024-08-11T07:37:37.596Z" }, + { url = "https://files.pythonhosted.org/packages/6b/59/12e03e675d28f450bade6da6bc79ad6616080b317c472b9ae688d2495a03/watchdog-4.0.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c100d09ac72a8a08ddbf0629ddfa0b8ee41740f9051429baa8e31bb903ad7508", size = 91682, upload-time = "2024-08-11T07:37:38.901Z" }, + { url = "https://files.pythonhosted.org/packages/ef/69/241998de9b8e024f5c2fbdf4324ea628b4231925305011ca8b7e1c3329f6/watchdog-4.0.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:f5315a8c8dd6dd9425b974515081fc0aadca1d1d61e078d2246509fd756141ee", size = 92249, upload-time = "2024-08-11T07:37:40.143Z" }, + { url = "https://files.pythonhosted.org/packages/70/3f/2173b4d9581bc9b5df4d7f2041b6c58b5e5448407856f68d4be9981000d0/watchdog-4.0.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:2d468028a77b42cc685ed694a7a550a8d1771bb05193ba7b24006b8241a571a1", size = 91773, upload-time = "2024-08-11T07:37:42.095Z" }, + { url = "https://files.pythonhosted.org/packages/f0/de/6fff29161d5789048f06ef24d94d3ddcc25795f347202b7ea503c3356acb/watchdog-4.0.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:f15edcae3830ff20e55d1f4e743e92970c847bcddc8b7509bcd172aa04de506e", size = 92250, upload-time = "2024-08-11T07:37:44.052Z" }, + { url = "https://files.pythonhosted.org/packages/8a/b1/25acf6767af6f7e44e0086309825bd8c098e301eed5868dc5350642124b9/watchdog-4.0.2-py3-none-manylinux2014_aarch64.whl", hash = "sha256:936acba76d636f70db8f3c66e76aa6cb5136a936fc2a5088b9ce1c7a3508fc83", size = 82947, upload-time = "2024-08-11T07:37:45.388Z" }, + { url = "https://files.pythonhosted.org/packages/e8/90/aebac95d6f954bd4901f5d46dcd83d68e682bfd21798fd125a95ae1c9dbf/watchdog-4.0.2-py3-none-manylinux2014_armv7l.whl", hash = "sha256:e252f8ca942a870f38cf785aef420285431311652d871409a64e2a0a52a2174c", size = 82942, upload-time = "2024-08-11T07:37:46.722Z" }, + { url = "https://files.pythonhosted.org/packages/15/3a/a4bd8f3b9381824995787488b9282aff1ed4667e1110f31a87b871ea851c/watchdog-4.0.2-py3-none-manylinux2014_i686.whl", hash = "sha256:0e83619a2d5d436a7e58a1aea957a3c1ccbf9782c43c0b4fed80580e5e4acd1a", size = 82947, upload-time = "2024-08-11T07:37:48.941Z" }, + { url = "https://files.pythonhosted.org/packages/09/cc/238998fc08e292a4a18a852ed8274159019ee7a66be14441325bcd811dfd/watchdog-4.0.2-py3-none-manylinux2014_ppc64.whl", hash = "sha256:88456d65f207b39f1981bf772e473799fcdc10801062c36fd5ad9f9d1d463a73", size = 82946, upload-time = "2024-08-11T07:37:50.279Z" }, + { url = "https://files.pythonhosted.org/packages/80/f1/d4b915160c9d677174aa5fae4537ae1f5acb23b3745ab0873071ef671f0a/watchdog-4.0.2-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:32be97f3b75693a93c683787a87a0dc8db98bb84701539954eef991fb35f5fbc", size = 82947, upload-time = "2024-08-11T07:37:51.55Z" }, + { url = "https://files.pythonhosted.org/packages/db/02/56ebe2cf33b352fe3309588eb03f020d4d1c061563d9858a9216ba004259/watchdog-4.0.2-py3-none-manylinux2014_s390x.whl", hash = "sha256:c82253cfc9be68e3e49282831afad2c1f6593af80c0daf1287f6a92657986757", size = 82944, upload-time = "2024-08-11T07:37:52.855Z" }, + { url = "https://files.pythonhosted.org/packages/01/d2/c8931ff840a7e5bd5dcb93f2bb2a1fd18faf8312e9f7f53ff1cf76ecc8ed/watchdog-4.0.2-py3-none-manylinux2014_x86_64.whl", hash = "sha256:c0b14488bd336c5b1845cee83d3e631a1f8b4e9c5091ec539406e4a324f882d8", size = 82947, upload-time = "2024-08-11T07:37:55.172Z" }, + { url = "https://files.pythonhosted.org/packages/d0/d8/cdb0c21a4a988669d7c210c75c6a2c9a0e16a3b08d9f7e633df0d9a16ad8/watchdog-4.0.2-py3-none-win32.whl", hash = "sha256:0d8a7e523ef03757a5aa29f591437d64d0d894635f8a50f370fe37f913ce4e19", size = 82935, upload-time = "2024-08-11T07:37:56.668Z" }, + { url = "https://files.pythonhosted.org/packages/99/2e/b69dfaae7a83ea64ce36538cc103a3065e12c447963797793d5c0a1d5130/watchdog-4.0.2-py3-none-win_amd64.whl", hash = "sha256:c344453ef3bf875a535b0488e3ad28e341adbd5a9ffb0f7d62cefacc8824ef2b", size = 82934, upload-time = "2024-08-11T07:37:57.991Z" }, + { url = "https://files.pythonhosted.org/packages/b0/0b/43b96a9ecdd65ff5545b1b13b687ca486da5c6249475b1a45f24d63a1858/watchdog-4.0.2-py3-none-win_ia64.whl", hash = "sha256:baececaa8edff42cd16558a639a9b0ddf425f93d892e8392a56bf904f5eff22c", size = 82933, upload-time = "2024-08-11T07:37:59.573Z" }, +] + +[[package]] +name = "watchdog" +version = "6.0.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/db/7d/7f3d619e951c88ed75c6037b246ddcf2d322812ee8ea189be89511721d54/watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282", size = 131220, upload-time = "2024-11-01T14:07:13.037Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/56/90994d789c61df619bfc5ce2ecdabd5eeff564e1eb47512bd01b5e019569/watchdog-6.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d1cdb490583ebd691c012b3d6dae011000fe42edb7a82ece80965b42abd61f26", size = 96390, upload-time = "2024-11-01T14:06:24.793Z" }, + { url = "https://files.pythonhosted.org/packages/55/46/9a67ee697342ddf3c6daa97e3a587a56d6c4052f881ed926a849fcf7371c/watchdog-6.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bc64ab3bdb6a04d69d4023b29422170b74681784ffb9463ed4870cf2f3e66112", size = 88389, upload-time = "2024-11-01T14:06:27.112Z" }, + { url = "https://files.pythonhosted.org/packages/44/65/91b0985747c52064d8701e1075eb96f8c40a79df889e59a399453adfb882/watchdog-6.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c897ac1b55c5a1461e16dae288d22bb2e412ba9807df8397a635d88f671d36c3", size = 89020, upload-time = "2024-11-01T14:06:29.876Z" }, + { url = "https://files.pythonhosted.org/packages/e0/24/d9be5cd6642a6aa68352ded4b4b10fb0d7889cb7f45814fb92cecd35f101/watchdog-6.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6eb11feb5a0d452ee41f824e271ca311a09e250441c262ca2fd7ebcf2461a06c", size = 96393, upload-time = "2024-11-01T14:06:31.756Z" }, + { url = "https://files.pythonhosted.org/packages/63/7a/6013b0d8dbc56adca7fdd4f0beed381c59f6752341b12fa0886fa7afc78b/watchdog-6.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ef810fbf7b781a5a593894e4f439773830bdecb885e6880d957d5b9382a960d2", size = 88392, upload-time = "2024-11-01T14:06:32.99Z" }, + { url = "https://files.pythonhosted.org/packages/d1/40/b75381494851556de56281e053700e46bff5b37bf4c7267e858640af5a7f/watchdog-6.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:afd0fe1b2270917c5e23c2a65ce50c2a4abb63daafb0d419fde368e272a76b7c", size = 89019, upload-time = "2024-11-01T14:06:34.963Z" }, + { url = "https://files.pythonhosted.org/packages/39/ea/3930d07dafc9e286ed356a679aa02d777c06e9bfd1164fa7c19c288a5483/watchdog-6.0.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdd4e6f14b8b18c334febb9c4425a878a2ac20efd1e0b231978e7b150f92a948", size = 96471, upload-time = "2024-11-01T14:06:37.745Z" }, + { url = "https://files.pythonhosted.org/packages/12/87/48361531f70b1f87928b045df868a9fd4e253d9ae087fa4cf3f7113be363/watchdog-6.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c7c15dda13c4eb00d6fb6fc508b3c0ed88b9d5d374056b239c4ad1611125c860", size = 88449, upload-time = "2024-11-01T14:06:39.748Z" }, + { url = "https://files.pythonhosted.org/packages/5b/7e/8f322f5e600812e6f9a31b75d242631068ca8f4ef0582dd3ae6e72daecc8/watchdog-6.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f10cb2d5902447c7d0da897e2c6768bca89174d0c6e1e30abec5421af97a5b0", size = 89054, upload-time = "2024-11-01T14:06:41.009Z" }, + { url = "https://files.pythonhosted.org/packages/68/98/b0345cabdce2041a01293ba483333582891a3bd5769b08eceb0d406056ef/watchdog-6.0.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:490ab2ef84f11129844c23fb14ecf30ef3d8a6abafd3754a6f75ca1e6654136c", size = 96480, upload-time = "2024-11-01T14:06:42.952Z" }, + { url = "https://files.pythonhosted.org/packages/85/83/cdf13902c626b28eedef7ec4f10745c52aad8a8fe7eb04ed7b1f111ca20e/watchdog-6.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:76aae96b00ae814b181bb25b1b98076d5fc84e8a53cd8885a318b42b6d3a5134", size = 88451, upload-time = "2024-11-01T14:06:45.084Z" }, + { url = "https://files.pythonhosted.org/packages/fe/c4/225c87bae08c8b9ec99030cd48ae9c4eca050a59bf5c2255853e18c87b50/watchdog-6.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a175f755fc2279e0b7312c0035d52e27211a5bc39719dd529625b1930917345b", size = 89057, upload-time = "2024-11-01T14:06:47.324Z" }, + { url = "https://files.pythonhosted.org/packages/05/52/7223011bb760fce8ddc53416beb65b83a3ea6d7d13738dde75eeb2c89679/watchdog-6.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e6f0e77c9417e7cd62af82529b10563db3423625c5fce018430b249bf977f9e8", size = 96390, upload-time = "2024-11-01T14:06:49.325Z" }, + { url = "https://files.pythonhosted.org/packages/9c/62/d2b21bc4e706d3a9d467561f487c2938cbd881c69f3808c43ac1ec242391/watchdog-6.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:90c8e78f3b94014f7aaae121e6b909674df5b46ec24d6bebc45c44c56729af2a", size = 88386, upload-time = "2024-11-01T14:06:50.536Z" }, + { url = "https://files.pythonhosted.org/packages/ea/22/1c90b20eda9f4132e4603a26296108728a8bfe9584b006bd05dd94548853/watchdog-6.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e7631a77ffb1f7d2eefa4445ebbee491c720a5661ddf6df3498ebecae5ed375c", size = 89017, upload-time = "2024-11-01T14:06:51.717Z" }, + { url = "https://files.pythonhosted.org/packages/30/ad/d17b5d42e28a8b91f8ed01cb949da092827afb9995d4559fd448d0472763/watchdog-6.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:c7ac31a19f4545dd92fc25d200694098f42c9a8e391bc00bdd362c5736dbf881", size = 87902, upload-time = "2024-11-01T14:06:53.119Z" }, + { url = "https://files.pythonhosted.org/packages/5c/ca/c3649991d140ff6ab67bfc85ab42b165ead119c9e12211e08089d763ece5/watchdog-6.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9513f27a1a582d9808cf21a07dae516f0fab1cf2d7683a742c498b93eedabb11", size = 88380, upload-time = "2024-11-01T14:06:55.19Z" }, + { url = "https://files.pythonhosted.org/packages/5b/79/69f2b0e8d3f2afd462029031baafb1b75d11bb62703f0e1022b2e54d49ee/watchdog-6.0.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7a0e56874cfbc4b9b05c60c8a1926fedf56324bb08cfbc188969777940aef3aa", size = 87903, upload-time = "2024-11-01T14:06:57.052Z" }, + { url = "https://files.pythonhosted.org/packages/e2/2b/dc048dd71c2e5f0f7ebc04dd7912981ec45793a03c0dc462438e0591ba5d/watchdog-6.0.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:e6439e374fc012255b4ec786ae3c4bc838cd7309a540e5fe0952d03687d8804e", size = 88381, upload-time = "2024-11-01T14:06:58.193Z" }, + { url = "https://files.pythonhosted.org/packages/a9/c7/ca4bf3e518cb57a686b2feb4f55a1892fd9a3dd13f470fca14e00f80ea36/watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13", size = 79079, upload-time = "2024-11-01T14:06:59.472Z" }, + { url = "https://files.pythonhosted.org/packages/5c/51/d46dc9332f9a647593c947b4b88e2381c8dfc0942d15b8edc0310fa4abb1/watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379", size = 79078, upload-time = "2024-11-01T14:07:01.431Z" }, + { url = "https://files.pythonhosted.org/packages/d4/57/04edbf5e169cd318d5f07b4766fee38e825d64b6913ca157ca32d1a42267/watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e", size = 79076, upload-time = "2024-11-01T14:07:02.568Z" }, + { url = "https://files.pythonhosted.org/packages/ab/cc/da8422b300e13cb187d2203f20b9253e91058aaf7db65b74142013478e66/watchdog-6.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f", size = 79077, upload-time = "2024-11-01T14:07:03.893Z" }, + { url = "https://files.pythonhosted.org/packages/2c/3b/b8964e04ae1a025c44ba8e4291f86e97fac443bca31de8bd98d3263d2fcf/watchdog-6.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26", size = 79078, upload-time = "2024-11-01T14:07:05.189Z" }, + { url = "https://files.pythonhosted.org/packages/62/ae/a696eb424bedff7407801c257d4b1afda455fe40821a2be430e173660e81/watchdog-6.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c", size = 79077, upload-time = "2024-11-01T14:07:06.376Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e8/dbf020b4d98251a9860752a094d09a65e1b436ad181faf929983f697048f/watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2", size = 79078, upload-time = "2024-11-01T14:07:07.547Z" }, + { url = "https://files.pythonhosted.org/packages/07/f6/d0e5b343768e8bcb4cda79f0f2f55051bf26177ecd5651f84c07567461cf/watchdog-6.0.0-py3-none-win32.whl", hash = "sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a", size = 79065, upload-time = "2024-11-01T14:07:09.525Z" }, + { url = "https://files.pythonhosted.org/packages/db/d9/c495884c6e548fce18a8f40568ff120bc3a4b7b99813081c8ac0c936fa64/watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680", size = 79070, upload-time = "2024-11-01T14:07:10.686Z" }, + { url = "https://files.pythonhosted.org/packages/33/e8/e40370e6d74ddba47f002a32919d91310d6074130fe4e17dabcafc15cbf1/watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f", size = 79067, upload-time = "2024-11-01T14:07:11.845Z" }, +] + [[package]] name = "watchfiles" version = "0.24.0" @@ -7990,6 +8687,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743, upload-time = "2025-03-05T20:03:39.41Z" }, ] +[[package]] +name = "wheel" +version = "0.45.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8a/98/2d9906746cdc6a6ef809ae6338005b3f21bb568bea3165cfc6a243fdc25c/wheel-0.45.1.tar.gz", hash = "sha256:661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729", size = 107545, upload-time = "2024-11-23T00:18:23.513Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/2c/87f3254fd8ffd29e4c02732eee68a83a1d3c346ae39bc6822dcbcb697f2b/wheel-0.45.1-py3-none-any.whl", hash = "sha256:708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248", size = 72494, upload-time = "2024-11-23T00:18:21.207Z" }, +] + [[package]] name = "widgetsnbextension" version = "4.0.14" From 3dced444a044a73a3d3c8d4c4d047b763fa2d808 Mon Sep 17 00:00:00 2001 From: Liam Connors Date: Tue, 22 Jul 2025 10:35:49 -0400 Subject: [PATCH 02/16] preload _plotly_utils --- mkdocs.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mkdocs.yml b/mkdocs.yml index c92823309e2..d7a8ab7e7cc 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -13,6 +13,8 @@ plugins: handlers: python: options: + preload_modules: + - _plotly_utils docstring_style: google show_source: false show_root_heading: true From bc32c86143ba07e9dc04200cde1e4ae6cf602208 Mon Sep 17 00:00:00 2001 From: Liam Connors Date: Mon, 2 Dec 2024 16:18:44 -0500 Subject: [PATCH 03/16] add docstrings directly to px functions --- plotly/express/_chart_types.py | 5757 ++++++++++++++++++++++- plotly/express/_doc.py | 31 - plotly/express/_imshow.py | 30 +- plotly/figure_factory/_hexbin_mapbox.py | 125 +- 4 files changed, 5700 insertions(+), 243 deletions(-) diff --git a/plotly/express/_chart_types.py b/plotly/express/_chart_types.py index 9ec2b4a6a63..cfcabb319e3 100644 --- a/plotly/express/_chart_types.py +++ b/plotly/express/_chart_types.py @@ -1,7 +1,6 @@ from warnings import warn from ._core import make_figure -from ._doc import make_docstring import plotly.graph_objs as go _wide_mode_xy_append = [ @@ -65,13 +64,247 @@ def scatter( """ In a scatter plot, each row of `data_frame` is represented by a symbol mark in 2D space. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + size : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign mark sizes. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + error_x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars. If `error_x_minus` is `None`, error bars will + be symmetrical, otherwise `error_x` is used for the positive direction + only. + error_x_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars in the negative direction. Ignored if `error_x` + is `None`. + error_y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars. If `error_y_minus` is `None`, error bars will + be symmetrical, otherwise `error_y` is used for the positive direction + only. + error_y_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars in the negative direction. Ignored if `error_y` + is `None`. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + size_max : int (default `20`) + Set the maximum mark size when using `size`. + marginal_x : str + One of `'rug'`, `'box'`, `'violin'`, or `'histogram'`. If set, a + horizontal subplot is drawn above the main plot, visualizing the + x-distribution. + marginal_y : str + One of `'rug'`, `'box'`, `'violin'`, or `'histogram'`. If set, a + vertical subplot is drawn to the right of the main plot, visualizing + the y-distribution. + trendline : str + One of `'ols'`, `'lowess'`, `'rolling'`, `'expanding'` or `'ewm'`. If + `'ols'`, an Ordinary Least Squares regression line will be drawn for + each discrete-color/symbol group. If `'lowess`', a Locally Weighted + Scatterplot Smoothing line will be drawn for each discrete-color/symbol + group. If `'rolling`', a Rolling (e.g. rolling average, rolling median) + line will be drawn for each discrete-color/symbol group. If + `'expanding`', an Expanding (e.g. expanding average, expanding sum) + line will be drawn for each discrete-color/symbol group. If `'ewm`', an + Exponentially Weighted Moment (e.g. exponentially-weighted moving + average) line will be drawn for each discrete-color/symbol group. See + the docstrings for the functions in + `plotly.express.trendline_functions` for more details on these + functions and how to configure them with the `trendline_options` + argument. + trendline_options : dict + Options passed as the first argument to the function from + `plotly.express.trendline_functions` named in the `trendline` + argument. + trendline_color_override : str + Valid CSS color. If provided, and if `trendline` is set, all trendlines + will be drawn in this color rather than in the same color as the traces + from which they draw their inputs. + trendline_scope : str (one of `'trace'` or `'overall'`, default `'trace'`) + If `'trace'`, then one trendline is drawn per trace (i.e. per color, + symbol, facet, animation frame etc) and if `'overall'` then one + trendline is computed for the entire dataset, and replicated across all + facets. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + render_mode : str + One of `'auto'`, `'svg'` or `'webgl'`, default `'auto'` Controls the + browser API used to draw marks. `'svg'` is appropriate for figures of + less than 1000 data points, and will allow for fully-vectorized output. + `'webgl'` is likely necessary for acceptable performance above 1000 + points but rasterizes part of the output. `'auto'` uses heuristics to + choose the mode. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scatter) -scatter.__doc__ = make_docstring(scatter, append_dict=_cartesian_append_dict) - - def density_contour( data_frame=None, x=None, @@ -117,6 +350,194 @@ def density_contour( In a density contour plot, rows of `data_frame` are grouped together into contour marks to visualize the 2D distribution of an aggregate function `histfunc` (e.g. the count or sum) of the value `z`. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + z : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the z axis in cartesian coordinates. For + `density_heatmap` and `density_contour` these values are used as the + inputs to `histfunc`. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + marginal_x : str + One of `'rug'`, `'box'`, `'violin'`, or `'histogram'`. If set, a + horizontal subplot is drawn above the main plot, visualizing the + x-distribution. + marginal_y : str + One of `'rug'`, `'box'`, `'violin'`, or `'histogram'`. If set, a + vertical subplot is drawn to the right of the main plot, visualizing + the y-distribution. + trendline : str + One of `'ols'`, `'lowess'`, `'rolling'`, `'expanding'` or `'ewm'`. If + `'ols'`, an Ordinary Least Squares regression line will be drawn for + each discrete-color/symbol group. If `'lowess`', a Locally Weighted + Scatterplot Smoothing line will be drawn for each discrete-color/symbol + group. If `'rolling`', a Rolling (e.g. rolling average, rolling median) + line will be drawn for each discrete-color/symbol group. If + `'expanding`', an Expanding (e.g. expanding average, expanding sum) + line will be drawn for each discrete-color/symbol group. If `'ewm`', an + Exponentially Weighted Moment (e.g. exponentially-weighted moving + average) line will be drawn for each discrete-color/symbol group. See + the docstrings for the functions in + `plotly.express.trendline_functions` for more details on these + functions and how to configure them with the `trendline_options` + argument. + trendline_options : dict + Options passed as the first argument to the function from + `plotly.express.trendline_functions` named in the `trendline` + argument. + trendline_color_override : str + Valid CSS color. If provided, and if `trendline` is set, all trendlines + will be drawn in this color rather than in the same color as the traces + from which they draw their inputs. + trendline_scope : str (one of `'trace'` or `'overall'`, default `'trace'`) + If `'trace'`, then one trendline is drawn per trace (i.e. per color, + symbol, facet, animation frame etc) and if `'overall'` then one + trendline is computed for the entire dataset, and replicated across all + facets. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + histfunc : str (default `'count'` if no arguments are provided, else `'sum'`) + One of `'count'`, `'sum'`, `'avg'`, `'min'`, or `'max'`. Function used + to aggregate values for summarization (note: can be normalized with + `histnorm`). The arguments to this function are the values of `z`. + histnorm : str (default `None`) + One of `'percent'`, `'probability'`, `'density'`, or `'probability + density'` If `None`, the output of `histfunc` is used as is. If + `'probability'`, the output of `histfunc` for a given bin is divided by + the sum of the output of `histfunc` for all bins. If `'percent'`, the + output of `histfunc` for a given bin is divided by the sum of the + output of `histfunc` for all bins and multiplied by 100. If + `'density'`, the output of `histfunc` for a given bin is divided by the + size of the bin. If `'probability density'`, the output of `histfunc` + for a given bin is normalized such that it corresponds to the + probability that a random event whose distribution is described by the + output of `histfunc` will fall into that bin. + nbinsx : int + Positive integer. Sets the number of bins along the x axis. + nbinsy : int + Positive integer. Sets the number of bins along the y axis. + text_auto : bool or string (default `False`) + If `True` or a string, the x or y or z values will be displayed as + text, depending on the orientation A string like `'.2f'` will be + interpreted as a `texttemplate` numeric formatting directive. + title : str + The figure title. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + -------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -133,19 +554,6 @@ def density_contour( ) -density_contour.__doc__ = make_docstring( - density_contour, - append_dict=dict( - x=_wide_mode_xy_append, - y=_wide_mode_xy_append, - z=[ - "For `density_heatmap` and `density_contour` these values are used as the inputs to `histfunc`.", - ], - histfunc=["The arguments to this function are the values of `z`."], - ), -) - - def density_heatmap( data_frame=None, x=None, @@ -188,6 +596,165 @@ def density_heatmap( In a density heatmap, rows of `data_frame` are grouped together into colored rectangular tiles to visualize the 2D distribution of an aggregate function `histfunc` (e.g. the count or sum) of the value `z`. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + z : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the z axis in cartesian coordinates. For + `density_heatmap` and `density_contour` these values are used as the + inputs to `histfunc`. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + marginal_x : str + One of `'rug'`, `'box'`, `'violin'`, or `'histogram'`. If set, a + horizontal subplot is drawn above the main plot, visualizing the + x-distribution. + marginal_y : str + One of `'rug'`, `'box'`, `'violin'`, or `'histogram'`. If set, a + vertical subplot is drawn to the right of the main plot, visualizing + the y-distribution. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + histfunc : str (default `'count'` if no arguments are provided, else `'sum'`) + One of `'count'`, `'sum'`, `'avg'`, `'min'`, or `'max'`. Function used + to aggregate values for summarization (note: can be normalized with + `histnorm`). The arguments to this function are the values of `z`. + histnorm: str (default `None`) + One of `'percent'`, `'probability'`, `'density'`, or `'probability + density'` If `None`, the output of `histfunc` is used as is. If + `'probability'`, the output of `histfunc` for a given bin is divided by + the sum of the output of `histfunc` for all bins. If `'percent'`, the + output of `histfunc` for a given bin is divided by the sum of the + output of `histfunc` for all bins and multiplied by 100. If + `'density'`, the output of `histfunc` for a given bin is divided by the + size of the bin. If `'probability density'`, the output of `histfunc` + for a given bin is normalized such that it corresponds to the + probability that a random event whose distribution is described by the + output of `histfunc` will fall into that bin. + nbinsx : int + Positive integer. Sets the number of bins along the x axis. + nbinsy : int + Positive integer. Sets the number of bins along the y axis. + text_auto : bool or string (default `False`) + If `True` or a string, the x or y or z values will be displayed as + text, depending on the orientation A string like `'.2f'` will be + interpreted as a `texttemplate` numeric formatting directive. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -203,21 +770,6 @@ def density_heatmap( ) -density_heatmap.__doc__ = make_docstring( - density_heatmap, - append_dict=dict( - x=_wide_mode_xy_append, - y=_wide_mode_xy_append, - z=[ - "For `density_heatmap` and `density_contour` these values are used as the inputs to `histfunc`.", - ], - histfunc=[ - "The arguments to this function are the values of `z`.", - ], - ), -) - - def line( data_frame=None, x=None, @@ -266,13 +818,214 @@ def line( """ In a 2D line plot, each row of `data_frame` is represented as a vertex of a polyline mark in 2D space. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + line_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + group rows of `data_frame` into lines. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + line_dash : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign dash-patterns to lines. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + error_x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars. If `error_x_minus` is `None`, error bars will + be symmetrical, otherwise `error_x` is used for the positive direction + only. + error_x_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars in the negative direction. Ignored if `error_x` + is `None`. + error_y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars. If `error_y_minus` is `None`, error bars will + be symmetrical, otherwise `error_y` is used for the positive direction + only. + error_y_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars in the negative direction. Ignored if `error_y` + is `None`. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + line_dash_sequence : list of str + Strings should define valid plotly.js dash-patterns. When `line_dash` + is set, values in that column are assigned dash-patterns by cycling + through `line_dash_sequence` in the order described in + `category_orders`, unless the value of `line_dash` is a key in + `line_dash_map`. + line_dash_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js dash-patterns. Used to override + `line_dash_sequences` to assign a specific dash-patterns to lines + corresponding with specific values. Keys in `line_dash_map` should be + values in the column denoted by `line_dash`. Alternatively, if the + values of `line_dash` are valid line-dash names, the string + `'identity'` may be passed to cause them to be used directly. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + markers : boolean (default `False`) + If `True`, markers are shown on lines. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + line_shape : str (default `'linear'`) + One of `'linear'`, `'spline'`, `'hv'`, `'vh'`, `'hvh'`, or `'vhv'` + render_mode : str + One of `'auto'`, `'svg'` or `'webgl'`, default `'auto'` Controls the + browser API used to draw marks. `'svg'` is appropriate for figures of + less than 1000 data points, and will allow for fully-vectorized output. + `'webgl'` is likely necessary for acceptable performance above 1000 + points but rasterizes part of the output. `'auto'` uses heuristics to + choose the mode. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scatter) -line.__doc__ = make_docstring(line, append_dict=_cartesian_append_dict) - - def area( data_frame=None, x=None, @@ -318,6 +1071,186 @@ def area( In a stacked area plot, each row of `data_frame` is represented as a vertex of a polyline mark in 2D space. The area between successive polylines is filled. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + line_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + group rows of `data_frame` into lines. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + pattern_shape : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign pattern shapes to marks. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + pattern_shape_sequence : list of str + Strings should define valid plotly.js patterns-shapes. When + `pattern_shape` is set, values in that column are assigned patterns- + shapes by cycling through `pattern_shape_sequence` in the order + described in `category_orders`, unless the value of `pattern_shape` is + a key in `pattern_shape_map`. + pattern_shape_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js patterns-shapes. Used to override + `pattern_shape_sequences` to assign a specific patterns-shapes to lines + corresponding with specific values. Keys in `pattern_shape_map` should + be values in the column denoted by `pattern_shape`. Alternatively, if + the values of `pattern_shape` are valid patterns-shapes names, the + string `'identity'` may be passed to cause them to be used directly. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + markers : boolean (default `False`) + If `True`, markers are shown on lines. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + groupnorm : str (default `None`) + One of `'fraction'` or `'percent'`. If `'fraction'`, the value of each + point is divided by the sum of all values at that location coordinate. + `'percent'` is the same but multiplied by 100 to show percentages. + `None` will stack up all values at each location coordinate. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + line_shape : str (default `'linear'`) + One of `'linear'`, `'spline'`, `'hv'`, `'vh'`, `'hvh'`, or `'vhv'` + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -326,9 +1259,6 @@ def area( ) -area.__doc__ = make_docstring(area, append_dict=_cartesian_append_dict) - - def bar( data_frame=None, x=None, @@ -377,6 +1307,208 @@ def bar( """ In a bar plot, each row of `data_frame` is represented as a rectangular mark. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + pattern_shape : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign pattern shapes to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + base : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position the base of the bar. + error_x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars. If `error_x_minus` is `None`, error bars will + be symmetrical, otherwise `error_x` is used for the positive direction + only. + error_x_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars in the negative direction. Ignored if `error_x` + is `None`. + error_y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars. If `error_y_minus` is `None`, error bars will + be symmetrical, otherwise `error_y` is used for the positive direction + only. + error_y_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars in the negative direction. Ignored if `error_y` + is `None`. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + pattern_shape_sequence : list of str + Strings should define valid plotly.js patterns-shapes. When + `pattern_shape` is set, values in that column are assigned patterns- + shapes by cycling through `pattern_shape_sequence` in the order + described in `category_orders`, unless the value of `pattern_shape` is + a key in `pattern_shape_map`. + pattern_shape_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js patterns-shapes. Used to override + `pattern_shape_sequences` to assign a specific patterns-shapes to lines + corresponding with specific values. Keys in `pattern_shape_map` should + be values in the column denoted by `pattern_shape`. Alternatively, if + the values of `pattern_shape` are valid patterns-shapes names, the + string `'identity'` may be passed to cause them to be used directly. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + barmode : str (default `'relative'`) + One of `'group'`, `'overlay'` or `'relative'` In `'relative'` mode, + bars are stacked above zero for positive values and below zero for + negative values. In `'overlay'` mode, bars are drawn on top of one + another. In `'group'` mode, bars are placed beside each other. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + text_auto : bool or string (default `False`) + If `True` or a string, the x or y or z values will be displayed as + text, depending on the orientation A string like `'.2f'` will be + interpreted as a `texttemplate` numeric formatting directive. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -386,9 +1518,6 @@ def bar( ) -bar.__doc__ = make_docstring(bar, append_dict=_cartesian_append_dict) - - def timeline( data_frame=None, x_start=None, @@ -428,6 +1557,162 @@ def timeline( """ In a timeline plot, each row of `data_frame` is represented as a rectangular mark on an x axis of type `date`, spanning from `x_start` to `x_end`. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x_start : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. (required) Values from this column or array_like are + used to position marks along the x axis in cartesian coordinates. + x_end : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. (required) Values from this column or array_like are + used to position marks along the x axis in cartesian coordinates. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + pattern_shape : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign pattern shapes to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + pattern_shape_sequence : list of str + Strings should define valid plotly.js patterns-shapes. When + `pattern_shape` is set, values in that column are assigned patterns- + shapes by cycling through `pattern_shape_sequence` in the order + described in `category_orders`, unless the value of `pattern_shape` is + a key in `pattern_shape_map`. + pattern_shape_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js patterns-shapes. Used to override + `pattern_shape_sequences` to assign a specific patterns-shapes to lines + corresponding with specific values. Keys in `pattern_shape_map` should + be values in the column denoted by `pattern_shape`. Alternatively, if + the values of `pattern_shape` are valid patterns-shapes names, the + string `'identity'` may be passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -437,9 +1722,6 @@ def timeline( ) -timeline.__doc__ = make_docstring(timeline) - - def histogram( data_frame=None, x=None, @@ -486,6 +1768,189 @@ def histogram( rectangular mark to visualize the 1D distribution of an aggregate function `histfunc` (e.g. the count or sum) of the value `y` (or `x` if `orientation` is `'h'`). + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. If + `orientation` is `'h'`, these values are used as inputs to `histfunc`. + Either `x` or `y` can optionally be a list of column references or + array_likes, in which case the data will be treated as if it were + 'wide' rather than 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. If + `orientation` is `'v'`, these values are used as inputs to `histfunc`. + Either `x` or `y` can optionally be a list of column references or + array_likes, in which case the data will be treated as if it were + 'wide' rather than 'long'. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + pattern_shape : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign pattern shapes to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + pattern_shape_sequence : list of str + Strings should define valid plotly.js patterns-shapes. When + `pattern_shape` is set, values in that column are assigned patterns- + shapes by cycling through `pattern_shape_sequence` in the order + described in `category_orders`, unless the value of `pattern_shape` is + a key in `pattern_shape_map`. + pattern_shape_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js patterns-shapes. Used to override + `pattern_shape_sequences` to assign a specific patterns-shapes to lines + corresponding with specific values. Keys in `pattern_shape_map` should + be values in the column denoted by `pattern_shape`. Alternatively, if + the values of `pattern_shape` are valid patterns-shapes names, the + string `'identity'` may be passed to cause them to be used directly. + marginal : str + One of `'rug'`, `'box'`, `'violin'`, or `'histogram'`. If set, a + subplot is drawn alongside the main plot, visualizing the distribution. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + barmode : str (default `'relative'`) + One of `'group'`, `'overlay'` or `'relative'` In `'relative'` mode, + bars are stacked above zero for positive values and below zero for + negative values. In `'overlay'` mode, bars are drawn on top of one + another. In `'group'` mode, bars are placed beside each other. + barnorm : str (default `None`) + One of `'fraction'` or `'percent'`. If `'fraction'`, the value of each + bar is divided by the sum of all values at that location coordinate. + `'percent'` is the same but multiplied by 100 to show percentages. + `None` will stack up all values at each location coordinate. + histnorm: str (default `None`) + One of `'percent'`, `'probability'`, `'density'`, or `'probability + density'` If `None`, the output of `histfunc` is used as is. If + `'probability'`, the output of `histfunc` for a given bin is divided by + the sum of the output of `histfunc` for all bins. If `'percent'`, the + output of `histfunc` for a given bin is divided by the sum of the + output of `histfunc` for all bins and multiplied by 100. If + `'density'`, the output of `histfunc` for a given bin is divided by the + size of the bin. If `'probability density'`, the output of `histfunc` + for a given bin is normalized such that it corresponds to the + probability that a random event whose distribution is described by the + output of `histfunc` will fall into that bin. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + histfunc : str (default `'count'` if no arguments are provided, else `'sum'`) + One of `'count'`, `'sum'`, `'avg'`, `'min'`, or `'max'`. Function used + to aggregate values for summarization (note: can be normalized with + `histnorm`). The arguments to this function are the values of `y` (`x`) + if `orientation` is `'v'` (`'h'`). + cumulative : boolean (default `False`) + If `True`, histogram values are cumulative. + nbins : int + Positive integer. Sets the number of bins. + text_auto : bool or string (default `False`) + If `True` or a string, the x or y or z values will be displayed as + text, depending on the orientation A string like `'.2f'` will be + interpreted as a `texttemplate` numeric formatting directive. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -499,20 +1964,6 @@ def histogram( ) -histogram.__doc__ = make_docstring( - histogram, - append_dict=dict( - x=["If `orientation` is `'h'`, these values are used as inputs to `histfunc`."] - + _wide_mode_xy_append, - y=["If `orientation` is `'v'`, these values are used as inputs to `histfunc`."] - + _wide_mode_xy_append, - histfunc=[ - "The arguments to this function are the values of `y` (`x`) if `orientation` is `'v'` (`'h'`).", - ], - ), -) - - def ecdf( data_frame=None, x=None, @@ -561,25 +2012,201 @@ def ecdf( are sorted by the value `x` (or `y` if `orientation` is `'h'`) and their cumulative count (or the cumulative sum of `y` if supplied and `orientation` is `h`) is drawn as a line. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. If + `orientation` is `'h'`, the cumulative sum of this argument is plotted + rather than the cumulative count. Either `x` or `y` can optionally be a + list of column references or array_likes, in which case the data will + be treated as if it were 'wide' rather than 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. If + `orientation` is `'v'`, the cumulative sum of this argument is plotted + rather than the cumulative count. Either `x` or `y` can optionally be a + list of column references or array_likes, in which case the data will + be treated as if it were 'wide' rather than 'long'. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + line_dash : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign dash-patterns to lines. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + markers : boolean (default `False`) + If `True`, markers are shown on lines. + lines : boolean (default `True`) + If `False`, lines are not drawn (forced to `True` if `markers` is + `False`). + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + line_dash_sequence : list of str + Strings should define valid plotly.js dash-patterns. When `line_dash` + is set, values in that column are assigned dash-patterns by cycling + through `line_dash_sequence` in the order described in + `category_orders`, unless the value of `line_dash` is a key in + `line_dash_map`. + line_dash_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js dash-patterns. Used to override + `line_dash_sequences` to assign a specific dash-patterns to lines + corresponding with specific values. Keys in `line_dash_map` should be + values in the column denoted by `line_dash`. Alternatively, if the + values of `line_dash` are valid line-dash names, the string + `'identity'` may be passed to cause them to be used directly. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + marginal : str + One of `'rug'`, `'box'`, `'violin'`, or `'histogram'`. If set, a + subplot is drawn alongside the main plot, visualizing the distribution. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + ecdfnorm : string or `None` (default `'probability'`) + One of `'probability'` or `'percent'` If `None`, values will be raw + counts or sums. If `'probability', values will be probabilities + normalized from 0 to 1. If `'percent', values will be percentages + normalized from 0 to 100. + ecdfmode : string (default `'standard'`) + One of `'standard'`, `'complementary'` or `'reversed'` If `'standard'`, + the ECDF is plotted such that values represent data at or below the + point. If `'complementary'`, the CCDF is plotted such that values + represent data above the point. If `'reversed'`, a variant of the CCDF + is plotted such that values represent data at or above the point. + render_mode : str + One of `'auto'`, `'svg'` or `'webgl'`, default `'auto'` Controls the + browser API used to draw marks. `'svg'` is appropriate for figures of + less than 1000 data points, and will allow for fully-vectorized output. + `'webgl'` is likely necessary for acceptable performance above 1000 + points but rasterizes part of the output. `'auto'` uses heuristics to + choose the mode. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scatter) -ecdf.__doc__ = make_docstring( - ecdf, - append_dict=dict( - x=[ - "If `orientation` is `'h'`, the cumulative sum of this argument is plotted rather than the cumulative count." - ] - + _wide_mode_xy_append, - y=[ - "If `orientation` is `'v'`, the cumulative sum of this argument is plotted rather than the cumulative count." - ] - + _wide_mode_xy_append, - ), -) - - def violin( data_frame=None, x=None, @@ -616,6 +2243,151 @@ def violin( """ In a violin plot, rows of `data_frame` are grouped together into a curved mark to visualize their distribution. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + violinmode : str (default `'group'`) + One of `'group'` or `'overlay'` In `'overlay'` mode, violins are on + drawn top of one another. In `'group'` mode, violins are placed beside + each other. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + points : str or boolean (default `'outliers'`) + One of `'outliers'`, `'suspectedoutliers'`, `'all'`, or `False`. If + `'outliers'`, only the sample points lying outside the whiskers are + shown. If `'suspectedoutliers'`, all outlier points are shown and those + less than 4*Q1-3*Q3 or greater than 4*Q3-3*Q1 are highlighted with the + marker's `'outliercolor'`. If `'outliers'`, only the sample points + lying outside the whiskers are shown. If `'all'`, all sample points are + shown. If `False`, no sample points are shown and the whiskers extend + to the full range of the sample. + box : boolean (default `False`) + If `True`, boxes are drawn inside the violins. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -631,9 +2403,6 @@ def violin( ) -violin.__doc__ = make_docstring(violin, append_dict=_cartesian_append_dict) - - def box( data_frame=None, x=None, @@ -675,6 +2444,151 @@ def box( quartile (Q2) is marked by a line inside the box. By default, the whiskers correspond to the box' edges +/- 1.5 times the interquartile range (IQR: Q3-Q1), see "points" for other options. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + boxmode : str (default `'group'`) + One of `'group'` or `'overlay'` In `'overlay'` mode, boxes are on drawn + top of one another. In `'group'` mode, boxes are placed beside each + other. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + points : str or boolean (default `'outliers'`) + One of `'outliers'`, `'suspectedoutliers'`, `'all'`, or `False`. If + `'outliers'`, only the sample points lying outside the whiskers are + shown. If `'suspectedoutliers'`, all outlier points are shown and those + less than 4*Q1-3*Q3 or greater than 4*Q3-3*Q1 are highlighted with the + marker's `'outliercolor'`. If `'outliers'`, only the sample points + lying outside the whiskers are shown. If `'all'`, all sample points are + shown. If `False`, no sample points are shown and the whiskers extend + to the full range of the sample. + notched : boolean (default `False`) + If `True`, boxes are drawn with notches. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -684,9 +2598,6 @@ def box( ) -box.__doc__ = make_docstring(box, append_dict=_cartesian_append_dict) - - def strip( data_frame=None, x=None, @@ -721,6 +2632,140 @@ def strip( """ In a strip plot each row of `data_frame` is represented as a jittered mark within categories. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + stripmode: str (default `'group'`) + One of `'group'` or `'overlay'` In `'overlay'` mode, strips are on + drawn top of one another. In `'group'` mode, strips are placed beside + each other. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -738,9 +2783,6 @@ def strip( ) -strip.__doc__ = make_docstring(strip, append_dict=_cartesian_append_dict) - - def scatter_3d( data_frame=None, x=None, @@ -787,13 +2829,196 @@ def scatter_3d( """ In a 3D scatter plot, each row of `data_frame` is represented by a symbol mark in 3D space. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. + z : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the z axis in cartesian coordinates. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + size : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign mark sizes. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + error_x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars. If `error_x_minus` is `None`, error bars will + be symmetrical, otherwise `error_x` is used for the positive direction + only. + error_x_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars in the negative direction. Ignored if `error_x` + is `None`. + error_y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars. If `error_y_minus` is `None`, error bars will + be symmetrical, otherwise `error_y` is used for the positive direction + only. + error_y_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars in the negative direction. Ignored if `error_y` + is `None`. + error_z : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size z-axis error bars. If `error_z_minus` is `None`, error bars will + be symmetrical, otherwise `error_z` is used for the positive direction + only. + error_z_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size z-axis error bars in the negative direction. Ignored if `error_z` + is `None`. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + size_max : int (default `20`) + Set the maximum mark size when using `size`. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + log_z : boolean (default `False`) + If `True`, the z-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + range_z : list of two numbers + If provided, overrides auto-scaling on the z-axis in cartesian + coordinates. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scatter3d) -scatter_3d.__doc__ = make_docstring(scatter_3d) - - def line_3d( data_frame=None, x=None, @@ -839,13 +3064,197 @@ def line_3d( """ In a 3D line plot, each row of `data_frame` is represented as a vertex of a polyline mark in 3D space. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. + z : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the z axis in cartesian coordinates. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + line_dash : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign dash-patterns to lines. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + line_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + group rows of `data_frame` into lines. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + error_x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars. If `error_x_minus` is `None`, error bars will + be symmetrical, otherwise `error_x` is used for the positive direction + only. + error_x_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars in the negative direction. Ignored if `error_x` + is `None`. + error_y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars. If `error_y_minus` is `None`, error bars will + be symmetrical, otherwise `error_y` is used for the positive direction + only. + error_y_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars in the negative direction. Ignored if `error_y` + is `None`. + error_z : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size z-axis error bars. If `error_z_minus` is `None`, error bars will + be symmetrical, otherwise `error_z` is used for the positive direction + only. + error_z_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size z-axis error bars in the negative direction. Ignored if `error_z` + is `None`. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + line_dash_sequence : list of str + Strings should define valid plotly.js dash-patterns. When `line_dash` + is set, values in that column are assigned dash-patterns by cycling + through `line_dash_sequence` in the order described in + `category_orders`, unless the value of `line_dash` is a key in + `line_dash_map`. + line_dash_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js dash-patterns. Used to override + `line_dash_sequences` to assign a specific dash-patterns to lines + corresponding with specific values. Keys in `line_dash_map` should be + values in the column denoted by `line_dash`. Alternatively, if the + values of `line_dash` are valid line-dash names, the string + `'identity'` may be passed to cause them to be used directly. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + markers : boolean (default `False`) + If `True`, markers are shown on lines. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + log_z : boolean (default `False`) + If `True`, the z-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + range_z : list of two numbers + If provided, overrides auto-scaling on the z-axis in cartesian + coordinates. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scatter3d) -line_3d.__doc__ = make_docstring(line_3d) - - def scatter_ternary( data_frame=None, a=None, @@ -880,13 +3289,148 @@ def scatter_ternary( """ In a ternary scatter plot, each row of `data_frame` is represented by a symbol mark in ternary coordinates. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + a : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the a axis in ternary coordinates. + b : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the b axis in ternary coordinates. + c : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the c axis in ternary coordinates. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + size : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign mark sizes. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + size_max : int (default `20`) + Set the maximum mark size when using `size`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scatterternary) -scatter_ternary.__doc__ = make_docstring(scatter_ternary) - - def line_ternary( data_frame=None, a=None, @@ -921,13 +3465,151 @@ def line_ternary( """ In a ternary line plot, each row of `data_frame` is represented as a vertex of a polyline mark in ternary coordinates. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + a : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the a axis in ternary coordinates. + b : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the b axis in ternary coordinates. + c : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the c axis in ternary coordinates. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + line_dash : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign dash-patterns to lines. + line_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + group rows of `data_frame` into lines. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + line_dash_sequence : list of str + Strings should define valid plotly.js dash-patterns. When `line_dash` + is set, values in that column are assigned dash-patterns by cycling + through `line_dash_sequence` in the order described in + `category_orders`, unless the value of `line_dash` is a key in + `line_dash_map`. + line_dash_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js dash-patterns. Used to override + `line_dash_sequences` to assign a specific dash-patterns to lines + corresponding with specific values. Keys in `line_dash_map` should be + values in the column denoted by `line_dash`. Alternatively, if the + values of `line_dash` are valid line-dash names, the string + `'identity'` may be passed to cause them to be used directly. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + markers : boolean (default `False`) + If `True`, markers are shown on lines. + line_shape : str (default `'linear'`) + One of `'linear'`, `'spline'`, `'hv'`, `'vh'`, `'hvh'`, or `'vhv'` + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scatterternary) -line_ternary.__doc__ = make_docstring(line_ternary) - - def scatter_polar( data_frame=None, r=None, @@ -967,13 +3649,166 @@ def scatter_polar( """ In a polar scatter plot, each row of `data_frame` is represented by a symbol mark in polar coordinates. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + r : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the radial axis in polar coordinates. + theta : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the angular axis in polar coordinates. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + size : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign mark sizes. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + direction : str + One of '`counterclockwise'` or `'clockwise'`. Default is `'clockwise'` + Sets the direction in which increasing values of the angular axis are + drawn. + start_angle : int (default `90`) + Sets start angle for the angular axis, with 0 being due east and 90 + being due north. + size_max : int (default `20`) + Set the maximum mark size when using `size`. + range_r : list of two numbers + If provided, overrides auto-scaling on the radial axis in polar + coordinates. + range_theta : list of two numbers + If provided, overrides auto-scaling on the angular axis in polar + coordinates. + log_r : boolean (default `False`) + If `True`, the radial axis is log-scaled in polar coordinates. + render_mode : str + One of `'auto'`, `'svg'` or `'webgl'`, default `'auto'` Controls the + browser API used to draw marks. `'svg'` is appropriate for figures of + less than 1000 data points, and will allow for fully-vectorized output. + `'webgl'` is likely necessary for acceptable performance above 1000 + points but rasterizes part of the output. `'auto'` uses heuristics to + choose the mode. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scatterpolar) -scatter_polar.__doc__ = make_docstring(scatter_polar) - - def line_polar( data_frame=None, r=None, @@ -1014,13 +3849,172 @@ def line_polar( """ In a polar line plot, each row of `data_frame` is represented as a vertex of a polyline mark in polar coordinates. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + r : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the radial axis in polar coordinates. + theta : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the angular axis in polar coordinates. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + line_dash : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign dash-patterns to lines. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + line_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + group rows of `data_frame` into lines. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + line_dash_sequence : list of str + Strings should define valid plotly.js dash-patterns. When `line_dash` + is set, values in that column are assigned dash-patterns by cycling + through `line_dash_sequence` in the order described in + `category_orders`, unless the value of `line_dash` is a key in + `line_dash_map`. + line_dash_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js dash-patterns. Used to override + `line_dash_sequences` to assign a specific dash-patterns to lines + corresponding with specific values. Keys in `line_dash_map` should be + values in the column denoted by `line_dash`. Alternatively, if the + values of `line_dash` are valid line-dash names, the string + `'identity'` may be passed to cause them to be used directly. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + markers : boolean (default `False`) + If `True`, markers are shown on lines. + direction : str + One of '`counterclockwise'` or `'clockwise'`. Default is `'clockwise'` + Sets the direction in which increasing values of the angular axis are + drawn. + start_angle : int (default `90`) + Sets start angle for the angular axis, with 0 being due east and 90 + being due north. + line_close: boolean (default `False`) + If `True`, an extra line segment is drawn between the first and last + point. + line_shape : str (default `'linear'`) + One of `'linear'`, `'spline'`, `'hv'`, `'vh'`, `'hvh'`, or `'vhv'` + render_mode : str + One of `'auto'`, `'svg'` or `'webgl'`, default `'auto'` Controls the + browser API used to draw marks. `'svg'` is appropriate for figures of + less than 1000 data points, and will allow for fully-vectorized output. + `'webgl'` is likely necessary for acceptable performance above 1000 + points but rasterizes part of the output. `'auto'` uses heuristics to + choose the mode. + range_r : list of two numbers + If provided, overrides auto-scaling on the radial axis in polar + coordinates. + range_theta : list of two numbers + If provided, overrides auto-scaling on the angular axis in polar + coordinates. + log_r : boolean (default `False`) + If `True`, the radial axis is log-scaled in polar coordinates. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scatterpolar) -line_polar.__doc__ = make_docstring(line_polar) - - def bar_polar( data_frame=None, r=None, @@ -1058,6 +4052,158 @@ def bar_polar( """ In a polar bar plot, each row of `data_frame` is represented as a wedge mark in polar coordinates. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + r : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the radial axis in polar coordinates. + theta : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the angular axis in polar coordinates. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + pattern_shape : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign pattern shapes to marks. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + base : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position the base of the bar. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + pattern_shape_sequence : list of str + Strings should define valid plotly.js patterns-shapes. When + `pattern_shape` is set, values in that column are assigned patterns- + shapes by cycling through `pattern_shape_sequence` in the order + described in `category_orders`, unless the value of `pattern_shape` is + a key in `pattern_shape_map`. + pattern_shape_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js patterns-shapes. Used to override + `pattern_shape_sequences` to assign a specific patterns-shapes to lines + corresponding with specific values. Keys in `pattern_shape_map` should + be values in the column denoted by `pattern_shape`. Alternatively, if + the values of `pattern_shape` are valid patterns-shapes names, the + string `'identity'` may be passed to cause them to be used directly. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + barnorm : str (default `None`) + One of `'fraction'` or `'percent'`. If `'fraction'`, the value of each + bar is divided by the sum of all values at that location coordinate. + `'percent'` is the same but multiplied by 100 to show percentages. + `None` will stack up all values at each location coordinate. + barmode : str (default `'relative'`) + One of `'group'`, `'overlay'` or `'relative'` In `'relative'` mode, + bars are stacked above zero for positive values and below zero for + negative values. In `'overlay'` mode, bars are drawn on top of one + another. In `'group'` mode, bars are placed beside each other. + direction : str + One of '`counterclockwise'` or `'clockwise'`. Default is `'clockwise'` + Sets the direction in which increasing values of the angular axis are + drawn. + start_angle : int (default `90`) + Sets start angle for the angular axis, with 0 being due east and 90 + being due north. + range_r : list of two numbers + If provided, overrides auto-scaling on the radial axis in polar + coordinates. + range_theta : list of two numbers + If provided, overrides auto-scaling on the angular axis in polar + coordinates. + log_r : boolean (default `False`) + If `True`, the radial axis is log-scaled in polar coordinates. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -1066,9 +4212,6 @@ def bar_polar( ) -bar_polar.__doc__ = make_docstring(bar_polar) - - def choropleth( data_frame=None, lat=None, @@ -1109,6 +4252,162 @@ def choropleth( """ In a choropleth map, each row of `data_frame` is represented by a colored region mark on a map. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + locations : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are to be + interpreted according to `locationmode` and mapped to + longitude/latitude. + locationmode : str + One of 'ISO-3', 'USA-states', or 'country names' Determines the set of + locations used to match entries in `locations` to regions on the map. + geojson : GeoJSON-formatted dict + Must contain a Polygon feature collection, with IDs, which are + references from `locations`. + featureidkey : str (default: `'id'`) + Path to field in GeoJSON feature object with which to match the values + passed in to `locations`.The most common alternative to the default is + of the form `'properties.`. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + projection : str + One of `'equirectangular'`, `'mercator'`, `'orthographic'`, `'natural + earth'`, `'kavrayskiy7'`, `'miller'`, `'robinson'`, `'eckert4'`, + `'azimuthal equal area'`, `'azimuthal equidistant'`, `'conic equal + area'`, `'conic conformal'`, `'conic equidistant'`, `'gnomonic'`, + `'stereographic'`, `'mollweide'`, `'hammer'`, `'transverse mercator'`, + `'albers usa'`, `'winkel tripel'`, `'aitoff'`, or `'sinusoidal'`Default + depends on `scope`. + scope : str (default `'world'`). + One of `'world'`, `'usa'`, `'europe'`, `'asia'`, `'africa'`, `'north + america'`, or `'south america'`Default is `'world'` unless `projection` + is set to `'albers usa'`, which forces `'usa'`. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + fitbounds : str (default `False`). + One of `False`, `locations` or `geojson`. + basemap_visible : bool + Force the basemap visibility. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -1117,9 +4416,6 @@ def choropleth( ) -choropleth.__doc__ = make_docstring(choropleth) - - def scatter_geo( data_frame=None, lat=None, @@ -1167,6 +4463,190 @@ def scatter_geo( """ In a geographic scatter plot, each row of `data_frame` is represented by a symbol mark on a map. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + locations : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are to be + interpreted according to `locationmode` and mapped to + longitude/latitude. + locationmode : str + One of 'ISO-3', 'USA-states', or 'country names' Determines the set of + locations used to match entries in `locations` to regions on the map. + geojson : GeoJSON-formatted dict + Must contain a Polygon feature collection, with IDs, which are + references from `locations`. + featureidkey : str (default: `'id'`) + Path to field in GeoJSON feature object with which to match the values + passed in to `locations`.The most common alternative to the default is + of the form `'properties.`. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + size : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign mark sizes. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + size_max : int (default `20`) + Set the maximum mark size when using `size`. + projection : str + One of `'equirectangular'`, `'mercator'`, `'orthographic'`, `'natural + earth'`, `'kavrayskiy7'`, `'miller'`, `'robinson'`, `'eckert4'`, + `'azimuthal equal area'`, `'azimuthal equidistant'`, `'conic equal + area'`, `'conic conformal'`, `'conic equidistant'`, `'gnomonic'`, + `'stereographic'`, `'mollweide'`, `'hammer'`, `'transverse mercator'`, + `'albers usa'`, `'winkel tripel'`, `'aitoff'`, or `'sinusoidal'`Default + depends on `scope`. + scope : str (default `'world'`). + One of `'world'`, `'usa'`, `'europe'`, `'asia'`, `'africa'`, `'north + america'`, or `'south america'`Default is `'world'` unless `projection` + is set to `'albers usa'`, which forces `'usa'`. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + fitbounds : str (default `False`). + One of `False`, `locations` or `geojson`. + basemap_visible : bool + Force the basemap visibility. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -1175,9 +4655,6 @@ def scatter_geo( ) -scatter_geo.__doc__ = make_docstring(scatter_geo) - - def line_geo( data_frame=None, lat=None, @@ -1224,6 +4701,191 @@ def line_geo( """ In a geographic line plot, each row of `data_frame` is represented as a vertex of a polyline mark on a map. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + locations : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are to be + interpreted according to `locationmode` and mapped to + longitude/latitude. + locationmode : str + One of 'ISO-3', 'USA-states', or 'country names' Determines the set of + locations used to match entries in `locations` to regions on the map. + geojson : GeoJSON-formatted dict + Must contain a Polygon feature collection, with IDs, which are + references from `locations`. + featureidkey : str (default: `'id'`) + Path to field in GeoJSON feature object with which to match the values + passed in to `locations`.The most common alternative to the default is + of the form `'properties.`. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + line_dash : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign dash-patterns to lines. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + line_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + group rows of `data_frame` into lines. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + line_dash_sequence : list of str + Strings should define valid plotly.js dash-patterns. When `line_dash` + is set, values in that column are assigned dash-patterns by cycling + through `line_dash_sequence` in the order described in + `category_orders`, unless the value of `line_dash` is a key in + `line_dash_map`. + line_dash_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js dash-patterns. Used to override + `line_dash_sequences` to assign a specific dash-patterns to lines + corresponding with specific values. Keys in `line_dash_map` should be + values in the column denoted by `line_dash`. Alternatively, if the + values of `line_dash` are valid line-dash names, the string + `'identity'` may be passed to cause them to be used directly. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + markers : boolean (default `False`) + If `True`, markers are shown on lines. + projection : str + One of `'equirectangular'`, `'mercator'`, `'orthographic'`, `'natural + earth'`, `'kavrayskiy7'`, `'miller'`, `'robinson'`, `'eckert4'`, + `'azimuthal equal area'`, `'azimuthal equidistant'`, `'conic equal + area'`, `'conic conformal'`, `'conic equidistant'`, `'gnomonic'`, + `'stereographic'`, `'mollweide'`, `'hammer'`, `'transverse mercator'`, + `'albers usa'`, `'winkel tripel'`, `'aitoff'`, or `'sinusoidal'`Default + depends on `scope`. + scope : str (default `'world'`). + One of `'world'`, `'usa'`, `'europe'`, `'asia'`, `'africa'`, `'north + america'`, or `'south america'`Default is `'world'` unless `projection` + is set to `'albers usa'`, which forces `'usa'`. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + fitbounds : str (default `False`). + One of `False`, `locations` or `geojson`. + basemap_visible : bool + Force the basemap visibility. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -1232,9 +4894,6 @@ def line_geo( ) -line_geo.__doc__ = make_docstring(line_geo) - - def scatter_map( data_frame=None, lat=None, @@ -1268,11 +4927,137 @@ def scatter_map( """ In a scatter map, each row of `data_frame` is represented by a symbol mark on the map. - """ - return make_figure(args=locals(), constructor=go.Scattermap) + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + size : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign mark sizes. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + size_max : int (default `20`) + Set the maximum mark size when using `size`. + zoom : int (default `8`) + Between 0 and 20. Sets map zoom level. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + map_style : str (default `'basic'`) + Identifier of base map style. Allowed values are `'basic'`, `'carto- + darkmatter'`, `'carto-darkmatter-nolabels'`, `'carto-positron'`, + `'carto-positron-nolabels'`, `'carto-voyager'`, `'carto-voyager- + nolabels'`, `'dark'`, `'light'`, `'open-street-map'`, `'outdoors'`, + `'satellite'`, `'satellite-streets'`, `'streets'`, `'white-bg'`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure -scatter_map.__doc__ = make_docstring(scatter_map) + """ + return make_figure(args=locals(), constructor=go.Scattermap) def choropleth_map( @@ -1306,13 +5091,132 @@ def choropleth_map( """ In a choropleth map, each row of `data_frame` is represented by a colored region on the map. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + geojson : GeoJSON-formatted dict + Must contain a Polygon feature collection, with IDs, which are + references from `locations`. + featureidkey : str (default: `'id'`) + Path to field in GeoJSON feature object with which to match the values + passed in to `locations`.The most common alternative to the default is + of the form `'properties.`. + locations : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are to be + interpreted according to `locationmode` and mapped to + longitude/latitude. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + zoom : int (default `8`) + Between 0 and 20. Sets map zoom level. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + map_style : str (default `'basic'`) + Identifier of base map style. Allowed values are `'basic'`, `'carto- + darkmatter'`, `'carto-darkmatter-nolabels'`, `'carto-positron'`, + `'carto-positron-nolabels'`, `'carto-voyager'`, `'carto-voyager- + nolabels'`, `'dark'`, `'light'`, `'open-street-map'`, `'outdoors'`, + `'satellite'`, `'satellite-streets'`, `'streets'`, `'white-bg'`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Choroplethmap) -choropleth_map.__doc__ = make_docstring(choropleth_map) - - def density_map( data_frame=None, lat=None, @@ -1342,15 +5246,117 @@ def density_map( """ In a density map, each row of `data_frame` contributes to the intensity of the color of the region around the corresponding point on the map. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + z : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the z axis in cartesian coordinates. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + zoom : int (default `8`) + Between 0 and 20. Sets map zoom level. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + map_style : str (default `'basic'`) + Identifier of base map style. Allowed values are `'basic'`, `'carto- + darkmatter'`, `'carto-darkmatter-nolabels'`, `'carto-positron'`, + `'carto-positron-nolabels'`, `'carto-voyager'`, `'carto-voyager- + nolabels'`, `'dark'`, `'light'`, `'open-street-map'`, `'outdoors'`, + `'satellite'`, `'satellite-streets'`, `'streets'`, `'white-bg'`. + radius : int (default is 30) + Sets the radius of influence of each point. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), constructor=go.Densitymap, trace_patch=dict(radius=radius) ) -density_map.__doc__ = make_docstring(density_map) - - def line_map( data_frame=None, lat=None, @@ -1379,13 +5385,120 @@ def line_map( """ In a line map, each row of `data_frame` is represented as a vertex of a polyline mark on the map. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + line_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + group rows of `data_frame` into lines. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + zoom : int (default `8`) + Between 0 and 20. Sets map zoom level. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + map_style : str (default `'basic'`) + Identifier of base map style. Allowed values are `'basic'`, `'carto- + darkmatter'`, `'carto-darkmatter-nolabels'`, `'carto-positron'`, + `'carto-positron-nolabels'`, `'carto-voyager'`, `'carto-voyager- + nolabels'`, `'dark'`, `'light'`, `'open-street-map'`, `'outdoors'`, + `'satellite'`, `'satellite-streets'`, `'streets'`, `'white-bg'`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scattermap) -line_map.__doc__ = make_docstring(line_map) - - def scatter_mapbox( data_frame=None, lat=None, @@ -1421,6 +5534,138 @@ def scatter_mapbox( Learn more at: https://plotly.com/python/mapbox-to-maplibre/ In a Mapbox scatter plot, each row of `data_frame` is represented by a symbol mark on a Mapbox map. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + size : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign mark sizes. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + size_max : int (default `20`) + Set the maximum mark size when using `size`. + zoom : int (default `8`) + Between 0 and 20. Sets map zoom level. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + mapbox_style : str (default `'basic'`, needs Mapbox API token) + Identifier of base map style, some of which require a Mapbox or Stadia + Maps API token to be set using + `plotly.express.set_mapbox_access_token()`. Allowed values which do not + require a token are `'open-street-map'`, `'white-bg'`, `'carto- + positron'`, `'carto-darkmatter'`. Allowed values which require a Mapbox + API token are `'basic'`, `'streets'`, `'outdoors'`, `'light'`, + `'dark'`, `'satellite'`, `'satellite-streets'`. Allowed values which + require a Stadia Maps API token are `'stamen-terrain'`, `'stamen- + toner'`, `'stamen-watercolor'`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ warn( "*scatter_mapbox* is deprecated!" @@ -1432,9 +5677,6 @@ def scatter_mapbox( return make_figure(args=locals(), constructor=go.Scattermapbox) -scatter_mapbox.__doc__ = make_docstring(scatter_mapbox) - - def choropleth_mapbox( data_frame=None, geojson=None, @@ -1468,6 +5710,132 @@ def choropleth_mapbox( Learn more at: https://plotly.com/python/mapbox-to-maplibre/ In a Mapbox choropleth map, each row of `data_frame` is represented by a colored region on a Mapbox map. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + geojson : GeoJSON-formatted dict + Must contain a Polygon feature collection, with IDs, which are + references from `locations`. + featureidkey : str (default: `'id'`) + Path to field in GeoJSON feature object with which to match the values + passed in to `locations`.The most common alternative to the default is + of the form `'properties.`. + locations : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are to be + interpreted according to `locationmode` and mapped to + longitude/latitude. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + zoom : int (default `8`) + Between 0 and 20. Sets map zoom level. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + mapbox_style : str (default `'basic'`, needs Mapbox API token) + Identifier of base map style, some of which require a Mapbox or Stadia + Maps API token to be set using + `plotly.express.set_mapbox_access_token()`. Allowed values which do not + require a token are `'open-street-map'`, `'white-bg'`, `'carto- + positron'`, `'carto-darkmatter'`. Allowed values which require a Mapbox + API token are `'basic'`, `'streets'`, `'outdoors'`, `'light'`, + `'dark'`, `'satellite'`, `'satellite-streets'`. Allowed values which + require a Stadia Maps API token are `'stamen-terrain'`, `'stamen- + toner'`, `'stamen-watercolor'`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ warn( "*choropleth_mapbox* is deprecated!" @@ -1479,9 +5847,6 @@ def choropleth_mapbox( return make_figure(args=locals(), constructor=go.Choroplethmapbox) -choropleth_mapbox.__doc__ = make_docstring(choropleth_mapbox) - - def density_mapbox( data_frame=None, lat=None, @@ -1513,6 +5878,115 @@ def density_mapbox( Learn more at: https://plotly.com/python/mapbox-to-maplibre/ In a Mapbox density map, each row of `data_frame` contributes to the intensity of the color of the region around the corresponding point on the map + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + z : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the z axis in cartesian coordinates. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + zoom : int (default `8`) + Between 0 and 20. Sets map zoom level. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + mapbox_style : str (default `'basic'`, needs Mapbox API token) + Identifier of base map style, some of which require a Mapbox or Stadia + Maps API token to be set using + `plotly.express.set_mapbox_access_token()`. Allowed values which do not + require a token are `'open-street-map'`, `'white-bg'`, `'carto- + positron'`, `'carto-darkmatter'`. Allowed values which require a Mapbox + API token are `'basic'`, `'streets'`, `'outdoors'`, `'light'`, + `'dark'`, `'satellite'`, `'satellite-streets'`. Allowed values which + require a Stadia Maps API token are `'stamen-terrain'`, `'stamen- + toner'`, `'stamen-watercolor'`. + radius : int (default is 30) + Sets the radius of influence of each point. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ warn( "*density_mapbox* is deprecated!" @@ -1526,9 +6000,6 @@ def density_mapbox( ) -density_mapbox.__doc__ = make_docstring(density_mapbox) - - def line_mapbox( data_frame=None, lat=None, @@ -1559,6 +6030,121 @@ def line_mapbox( Learn more at: https://plotly.com/python/mapbox-to-maplibre/ In a Mapbox line plot, each row of `data_frame` is represented as a vertex of a polyline mark on a Mapbox map. + + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + line_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + group rows of `data_frame` into lines. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + zoom : int (default `8`) + Between 0 and 20. Sets map zoom level. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + mapbox_style : str (default `'basic'`, needs Mapbox API token) + Identifier of base map style, some of which require a Mapbox or Stadia + Maps API token to be set using + `plotly.express.set_mapbox_access_token()`. Allowed values which do not + require a token are `'open-street-map'`, `'white-bg'`, `'carto- + positron'`, `'carto-darkmatter'`. Allowed values which require a Mapbox + API token are `'basic'`, `'streets'`, `'outdoors'`, `'light'`, + `'dark'`, `'satellite'`, `'satellite-streets'`. Allowed values which + require a Stadia Maps API token are `'stamen-terrain'`, `'stamen- + toner'`, `'stamen-watercolor'`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ warn( "*line_mapbox* is deprecated!" @@ -1570,9 +6156,6 @@ def line_mapbox( return make_figure(args=locals(), constructor=go.Scattermapbox) -line_mapbox.__doc__ = make_docstring(line_mapbox) - - def scatter_matrix( data_frame=None, dimensions=None, @@ -1604,15 +6187,128 @@ def scatter_matrix( represented by a multiple symbol marks, one in each cell of a grid of 2D scatter plots, which plot each pair of `dimensions` against each other. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + dimensions : list of str or int, or Series or array-like + Either names of columns in `data_frame`, or pandas Series, or + array_like objects Values from these columns are used for + multidimensional visualization. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + size : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign mark sizes. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + size_max : int (default `20`) + Set the maximum mark size when using `size`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), constructor=go.Splom, layout_patch=dict(dragmode="select") ) -scatter_matrix.__doc__ = make_docstring(scatter_matrix) - - def parallel_coordinates( data_frame=None, dimensions=None, @@ -1631,13 +6327,60 @@ def parallel_coordinates( In a parallel coordinates plot, each row of `data_frame` is represented by a polyline mark which traverses a set of parallel axes, one for each of the `dimensions`. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + dimensions : list of str or int, or Series or array-like + Either names of columns in `data_frame`, or pandas Series, or + array_like objects Values from these columns are used for + multidimensional visualization. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Parcoords) -parallel_coordinates.__doc__ = make_docstring(parallel_coordinates) - - def parallel_categories( data_frame=None, dimensions=None, @@ -1658,13 +6401,64 @@ def parallel_categories( `data_frame` is grouped with other rows that share the same values of `dimensions` and then plotted as a polyline mark through a set of parallel axes, one for each of the `dimensions`. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + dimensions : list of str or int, or Series or array-like + Either names of columns in `data_frame`, or pandas Series, or + array_like objects Values from these columns are used for + multidimensional visualization. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + dimensions_max_cardinality : int (default 50) + When `dimensions` is `None` and `data_frame` is provided, columns with + more than this number of unique values are excluded from the output. + Not used when `dimensions` is passed. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Parcats) -parallel_categories.__doc__ = make_docstring(parallel_categories) - - def pie( data_frame=None, names=None, @@ -1693,6 +6487,110 @@ def pie( """ In a pie plot, each row of `data_frame` is represented as a sector of a pie. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + names : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used as + labels for sectors. + values : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + set values associated to sectors. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + hole : float + Sets the fraction of the radius to cut out of the pie.Use this to make + a donut chart. + + Returns + ------- + plotly.graph_objects.Figure """ if color_discrete_sequence is not None: layout_patch = {"piecolorway": color_discrete_sequence} @@ -1706,18 +6604,6 @@ def pie( ) -pie.__doc__ = make_docstring( - pie, - override_dict=dict( - hole=[ - "float", - "Sets the fraction of the radius to cut out of the pie." - "Use this to make a donut chart.", - ], - ), -) - - def sunburst( data_frame=None, names=None, @@ -1746,6 +6632,116 @@ def sunburst( """ A sunburst plot represents hierarchial data as sectors laid out over several levels of concentric rings. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + names : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used as + labels for sectors. + values : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + set values associated to sectors. + parents : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used as + parents in sunburst and treemap charts. + path : list of str or int, or Series or array-like + Either names of columns in `data_frame`, or pandas Series, or + array_like objects List of columns names or columns of a rectangular + dataframe defining the hierarchy of sectors, from root to leaves. An + error is raised if path AND ids or parents is passed + ids : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + set ids of sectors + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + branchvalues : str + 'total' or 'remainder' Determines how the items in `values` are summed. + Whenset to 'total', items in `values` are taken to be valueof all its + descendants. When set to 'remainder', itemsin `values` corresponding to + the root and the branches:sectors are taken to be the extra part not + part of thesum of the values at their leaves. + maxdepth : int + Positive integer Sets the number of rendered sectors from any given + `level`. Set `maxdepth` to -1 to render all thelevels in the hierarchy. + + Returns + ------- + plotly.graph_objects.Figure """ if color_discrete_sequence is not None: layout_patch = {"sunburstcolorway": color_discrete_sequence} @@ -1766,9 +6762,6 @@ def sunburst( ) -sunburst.__doc__ = make_docstring(sunburst) - - def treemap( data_frame=None, names=None, @@ -1797,6 +6790,116 @@ def treemap( """ A treemap plot represents hierarchial data as nested rectangular sectors. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + names : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used as + labels for sectors. + values : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + set values associated to sectors. + parents : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used as + parents in sunburst and treemap charts. + ids : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + set ids of sectors + path : list of str or int, or Series or array-like + Either names of columns in `data_frame`, or pandas Series, or + array_like objects List of columns names or columns of a rectangular + dataframe defining the hierarchy of sectors, from root to leaves. An + error is raised if path AND ids or parents is passed + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + branchvalues : str + 'total' or 'remainder' Determines how the items in `values` are summed. + Whenset to 'total', items in `values` are taken to be valueof all its + descendants. When set to 'remainder', itemsin `values` corresponding to + the root and the branches:sectors are taken to be the extra part not + part of thesum of the values at their leaves. + maxdepth : int + Positive integer Sets the number of rendered sectors from any given + `level`. Set `maxdepth` to -1 to render all thelevels in the hierarchy. + + Returns + ------- + plotly.graph_objects.Figure """ if color_discrete_sequence is not None: layout_patch = {"treemapcolorway": color_discrete_sequence} @@ -1817,9 +6920,6 @@ def treemap( ) -treemap.__doc__ = make_docstring(treemap) - - def icicle( data_frame=None, names=None, @@ -1848,6 +6948,116 @@ def icicle( """ An icicle plot represents hierarchial data with adjoined rectangular sectors that all cascade from root down to leaf in one direction. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + names : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used as + labels for sectors. + values : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + set values associated to sectors. + parents : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used as + parents in sunburst and treemap charts. + path : list of str or int, or Series or array-like + Either names of columns in `data_frame`, or pandas Series, or + array_like objects List of columns names or columns of a rectangular + dataframe defining the hierarchy of sectors, from root to leaves. An + error is raised if path AND ids or parents is passed + ids : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + set ids of sectors + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + branchvalues : str + 'total' or 'remainder' Determines how the items in `values` are summed. + Whenset to 'total', items in `values` are taken to be valueof all its + descendants. When set to 'remainder', itemsin `values` corresponding to + the root and the branches:sectors are taken to be the extra part not + part of thesum of the values at their leaves. + maxdepth : int + Positive integer Sets the number of rendered sectors from any given + `level`. Set `maxdepth` to -1 to render all thelevels in the hierarchy. + + Returns + ------- + plotly.graph_objects.Figure """ if color_discrete_sequence is not None: layout_patch = {"iciclecolorway": color_discrete_sequence} @@ -1868,9 +7078,6 @@ def icicle( ) -icicle.__doc__ = make_docstring(icicle) - - def funnel( data_frame=None, x=None, @@ -1906,13 +7113,146 @@ def funnel( """ In a funnel plot, each row of `data_frame` is represented as a rectangular sector of a funnel. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Funnel) -funnel.__doc__ = make_docstring(funnel, append_dict=_cartesian_append_dict) - - def funnel_area( data_frame=None, names=None, @@ -1934,6 +7274,82 @@ def funnel_area( """ In a funnel area plot, each row of `data_frame` is represented as a trapezoidal sector of a funnel. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + names : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used as + labels for sectors. + values : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + set values associated to sectors. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + + Returns + ------- + plotly.graph_objects.Figure """ if color_discrete_sequence is not None: layout_patch = {"funnelareacolorway": color_discrete_sequence} @@ -1945,6 +7361,3 @@ def funnel_area( trace_patch=dict(showlegend=(names is not None)), layout_patch=layout_patch, ) - - -funnel_area.__doc__ = make_docstring(funnel_area) diff --git a/plotly/express/_doc.py b/plotly/express/_doc.py index 59faac4c0b3..7bb2be56770 100644 --- a/plotly/express/_doc.py +++ b/plotly/express/_doc.py @@ -607,34 +607,3 @@ "A string like `'.2f'` will be interpreted as a `texttemplate` numeric formatting directive.", ], ) - - -def make_docstring(fn, override_dict=None, append_dict=None): - override_dict = {} if override_dict is None else override_dict - append_dict = {} if append_dict is None else append_dict - tw = TextWrapper( - width=75, - initial_indent=" ", - subsequent_indent=" ", - break_on_hyphens=False, - ) - result = (fn.__doc__ or "") + "\nParameters\n----------\n" - for param in getfullargspec(fn)[0]: - if override_dict.get(param): - param_doc = list(override_dict[param]) - else: - param_doc = list(docs[param]) - if append_dict.get(param): - param_doc += append_dict[param] - param_desc_list = param_doc[1:] - param_desc = ( - tw.fill(" ".join(param_desc_list or "")) - if param in docs or param in override_dict - else "(documentation missing from map)" - ) - - param_type = param_doc[0] - result += "%s: %s\n%s\n" % (param, param_type, param_desc) - result += "\nReturns\n-------\n" - result += " plotly.graph_objects.Figure" - return result diff --git a/plotly/express/_imshow.py b/plotly/express/_imshow.py index ce6ddb84286..83dee3e3dc6 100644 --- a/plotly/express/_imshow.py +++ b/plotly/express/_imshow.py @@ -87,7 +87,7 @@ def imshow( Parameters ---------- - img: array-like image, or xarray + img : array-like image, or xarray The image data. Supported array shapes are - (M, N): an image with scalar data. The data is visualized @@ -115,28 +115,28 @@ def imshow( names are used for axis titles, and long name for the colorbar title (unless overridden in ``labels``). Possible keys are: x, y, and color. - x, y: list-like, optional + x, y : list-like, optional x and y are used to label the axes of single-channel heatmap visualizations and their lengths must match the lengths of the second and first dimensions of the img argument. They are auto-populated if the input is an xarray. - animation_frame: int or str, optional (default None) + animation_frame : int or str, optional (default None) axis number along which the image array is sliced to create an animation plot. If `img` is an xarray, `animation_frame` can be the name of one the dimensions. - facet_col: int or str, optional (default None) + facet_col : int or str, optional (default None) axis number along which the image array is sliced to create a facetted plot. If `img` is an xarray, `facet_col` can be the name of one the dimensions. - facet_col_wrap: int + facet_col_wrap : int Maximum number of facet columns. Wraps the column variable at this width, so that the column facets span multiple rows. Ignored if `facet_col` is None. - facet_col_spacing: float between 0 and 1 + facet_col_spacing : float between 0 and 1 Spacing between facet columns, in paper units. Default is 0.02. - facet_row_spacing: float between 0 and 1 + facet_row_spacing : float between 0 and 1 Spacing between facet rows created when ``facet_col_wrap`` is used, in paper units. Default is 0.0.7. @@ -164,10 +164,10 @@ def imshow( width : number The figure width in pixels. - height: number + height : number The figure height in pixels. - aspect: 'equal', 'auto', or None + aspect : 'equal', 'auto', or None - 'equal': Ensures an aspect ratio of 1 or pixels (square pixels) - 'auto': The axes is kept fixed and the aspect ratio of pixels is adjusted so that the data fit in the axes. In general, this will @@ -175,13 +175,13 @@ def imshow( - if None, 'equal' is used for numpy arrays and 'auto' for xarrays (which have typically heterogeneous coordinates) - contrast_rescaling: 'minmax', 'infer', or None + contrast_rescaling : 'minmax', 'infer', or None how to determine data values corresponding to the bounds of the color range, when zmin or zmax are not passed. If `minmax`, the min and max values of the image are used. If `infer`, a heuristic based on the image data type is used. - binary_string: bool, default None + binary_string : bool, default None if True, the image data are first rescaled and encoded as uint8 and then passed to plotly.js as a b64 PNG string. If False, data are passed unchanged as a numerical array. Setting to True may lead to performance @@ -191,12 +191,12 @@ def imshow( represented as grayscale and with no colorbar if use_binary_string is True. - binary_backend: str, 'auto' (default), 'pil' or 'pypng' + binary_backend : str, 'auto' (default), 'pil' or 'pypng' Third-party package for the transformation of numpy arrays to png b64 strings. If 'auto', Pillow is used if installed, otherwise pypng. - binary_compression_level: int, between 0 and 9 (default 4) + binary_compression_level : int, between 0 and 9 (default 4) png compression level to be passed to the backend when transforming an array to a png b64 string. Increasing `binary_compression` decreases the size of the png string, but the compression step takes more time. For most @@ -204,12 +204,12 @@ def imshow( test `len(fig.data[0].source)` and to time the execution of `imshow` to tune the level of compression. 0 means no compression (not recommended). - binary_format: str, 'png' (default) or 'jpg' + binary_format : str, 'png' (default) or 'jpg' compression format used to generate b64 string. 'png' is recommended since it uses lossless compression, but 'jpg' (lossy) compression can result if smaller binary strings for natural images. - text_auto: bool or str (default `False`) + text_auto : bool or str (default `False`) If `True` or a string, single-channel `img` values will be displayed as text. A string like `'.2f'` will be interpreted as a `texttemplate` numeric formatting directive. diff --git a/plotly/figure_factory/_hexbin_mapbox.py b/plotly/figure_factory/_hexbin_mapbox.py index c76352248b0..efff98ef4f8 100644 --- a/plotly/figure_factory/_hexbin_mapbox.py +++ b/plotly/figure_factory/_hexbin_mapbox.py @@ -1,5 +1,4 @@ from plotly.express._core import build_dataframe -from plotly.express._doc import make_docstring from plotly.express._chart_types import choropleth_mapbox, scatter_mapbox import narwhals.stable.v1 as nw import numpy as np @@ -350,6 +349,106 @@ def create_hexbin_mapbox( ): """ Returns a figure aggregating scattered points into connected hexagons + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + nx_hexagon : int + Number of hexagons (horizontally) to be created + agg_func : function + Numpy array aggregator, it must take as input a 1D array and output a + scalar value. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + zoom : int (default `8`) + Between 0 and 20. Sets map zoom level. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + mapbox_style : str (default `'basic'`, needs Mapbox API token) + Identifier of base map style, some of which require a Mapbox or Stadia + Maps API token to be set using + `plotly.express.set_mapbox_access_token()`. Allowed values which do not + require a token are `'open-street-map'`, `'white-bg'`, `'carto- + positron'`, `'carto-darkmatter'`. Allowed values which require a Mapbox + API token are `'basic'`, `'streets'`, `'outdoors'`, `'light'`, + `'dark'`, `'satellite'`, `'satellite-streets'`. Allowed values which + require a Stadia Maps API token are `'stamen-terrain'`, `'stamen- + toner'`, `'stamen-watercolor'`. + title : str + The figure title. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + min_count : int + Minimum number of points in a hexagon for it to be displayed. If None + and color is not set, display all hexagons. If None and color is set, + only display hexagons that contain points. + show_original_data : bool + Whether to show the original data on top of the hexbin aggregation. + original_data_marker : dict + Scattermapbox marker options. + + Returns + ------- + plotly.graph_objects.Figure """ args = build_dataframe(args=locals(), constructor=None) native_namespace = nw.get_native_namespace(args["data_frame"]) @@ -500,27 +599,3 @@ def create_hexbin_mapbox( ] return fig - - -create_hexbin_mapbox.__doc__ = make_docstring( - create_hexbin_mapbox, - override_dict=dict( - nx_hexagon=["int", "Number of hexagons (horizontally) to be created"], - agg_func=[ - "function", - "Numpy array aggregator, it must take as input a 1D array", - "and output a scalar value.", - ], - min_count=[ - "int", - "Minimum number of points in a hexagon for it to be displayed.", - "If None and color is not set, display all hexagons.", - "If None and color is set, only display hexagons that contain points.", - ], - show_original_data=[ - "bool", - "Whether to show the original data on top of the hexbin aggregation.", - ], - original_data_marker=["dict", "Scattermapbox marker options."], - ), -) From 174b0e951a713651342226ab52d4c5a423c6b4f0 Mon Sep 17 00:00:00 2001 From: Liam Connors Date: Tue, 22 Jul 2025 10:52:48 -0400 Subject: [PATCH 04/16] change docstring style --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index c92823309e2..523322efff5 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -13,7 +13,7 @@ plugins: handlers: python: options: - docstring_style: google + docstring_style: numpy show_source: false show_root_heading: true show_root_toc_entry: true From 76b36dd29e8732d31f1e639dfbf3aa9a23192f59 Mon Sep 17 00:00:00 2001 From: Greg Wilson Date: Tue, 22 Jul 2025 12:52:10 -0400 Subject: [PATCH 05/16] feat: numpy documentation style --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index d7a8ab7e7cc..8755f084ca8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -15,7 +15,7 @@ plugins: options: preload_modules: - _plotly_utils - docstring_style: google + docstring_style: numpy show_source: false show_root_heading: true show_root_toc_entry: true From 96af9f6f7a7e272916ad60c6899fd18ba4658279 Mon Sep 17 00:00:00 2001 From: Greg Wilson Date: Tue, 22 Jul 2025 12:53:07 -0400 Subject: [PATCH 06/16] feat: regenerating Python code with .js fixes --- plotly/graph_objs/_bar.py | 8 +- plotly/graph_objs/_barpolar.py | 12 +- plotly/graph_objs/_box.py | 12 +- plotly/graph_objs/_choropleth.py | 12 +- plotly/graph_objs/_choroplethmap.py | 6 +- plotly/graph_objs/_choroplethmapbox.py | 6 +- plotly/graph_objs/_cone.py | 12 +- plotly/graph_objs/_contour.py | 12 +- plotly/graph_objs/_densitymap.py | 12 +- plotly/graph_objs/_densitymapbox.py | 12 +- plotly/graph_objs/_figure.py | 199 +++++++++++------- plotly/graph_objs/_figurewidget.py | 199 +++++++++++------- plotly/graph_objs/_funnel.py | 12 +- plotly/graph_objs/_funnelarea.py | 12 +- plotly/graph_objs/_heatmap.py | 12 +- plotly/graph_objs/_histogram.py | 6 +- plotly/graph_objs/_histogram2d.py | 12 +- plotly/graph_objs/_histogram2dcontour.py | 12 +- plotly/graph_objs/_icicle.py | 14 +- plotly/graph_objs/_image.py | 18 +- plotly/graph_objs/_isosurface.py | 12 +- plotly/graph_objs/_mesh3d.py | 12 +- plotly/graph_objs/_parcats.py | 8 +- plotly/graph_objs/_pie.py | 12 +- plotly/graph_objs/_scatter.py | 12 +- plotly/graph_objs/_scatter3d.py | 12 +- plotly/graph_objs/_scattercarpet.py | 12 +- plotly/graph_objs/_scattergeo.py | 12 +- plotly/graph_objs/_scattergl.py | 12 +- plotly/graph_objs/_scattermap.py | 12 +- plotly/graph_objs/_scattermapbox.py | 12 +- plotly/graph_objs/_scatterpolar.py | 12 +- plotly/graph_objs/_scatterpolargl.py | 12 +- plotly/graph_objs/_scattersmith.py | 12 +- plotly/graph_objs/_scatterternary.py | 12 +- plotly/graph_objs/_splom.py | 12 +- plotly/graph_objs/_streamtube.py | 14 +- plotly/graph_objs/_sunburst.py | 14 +- plotly/graph_objs/_surface.py | 12 +- plotly/graph_objs/_treemap.py | 14 +- plotly/graph_objs/_violin.py | 12 +- plotly/graph_objs/_volume.py | 12 +- plotly/graph_objs/_waterfall.py | 12 +- plotly/graph_objs/bar/marker/_pattern.py | 62 ++++++ plotly/graph_objs/barpolar/marker/_pattern.py | 62 ++++++ plotly/graph_objs/carpet/_aaxis.py | 6 +- plotly/graph_objs/carpet/_baxis.py | 6 +- plotly/graph_objs/contour/_contours.py | 50 ++--- plotly/graph_objs/contourcarpet/_contours.py | 50 ++--- .../graph_objs/funnelarea/marker/_pattern.py | 62 ++++++ .../graph_objs/histogram/marker/_pattern.py | 62 ++++++ .../histogram2dcontour/_contours.py | 50 ++--- plotly/graph_objs/icicle/marker/_pattern.py | 62 ++++++ plotly/graph_objs/layout/_annotation.py | 29 +-- plotly/graph_objs/layout/_grid.py | 8 +- plotly/graph_objs/layout/_image.py | 4 +- plotly/graph_objs/layout/_legend.py | 50 +++++ plotly/graph_objs/layout/_selection.py | 4 +- plotly/graph_objs/layout/_shape.py | 4 +- plotly/graph_objs/layout/_xaxis.py | 104 ++++++--- plotly/graph_objs/layout/_yaxis.py | 104 ++++++--- plotly/graph_objs/layout/map/layer/_symbol.py | 6 +- plotly/graph_objs/layout/polar/_radialaxis.py | 6 +- plotly/graph_objs/layout/scene/_annotation.py | 21 +- plotly/graph_objs/layout/scene/_xaxis.py | 6 +- plotly/graph_objs/layout/scene/_yaxis.py | 6 +- plotly/graph_objs/layout/scene/_zaxis.py | 6 +- plotly/graph_objs/parcats/_line.py | 8 +- plotly/graph_objs/parcoords/_dimension.py | 4 +- plotly/graph_objs/pie/marker/_pattern.py | 62 ++++++ plotly/graph_objs/sankey/_link.py | 6 +- plotly/graph_objs/sankey/_node.py | 14 +- plotly/graph_objs/scatter/_fillpattern.py | 62 ++++++ plotly/graph_objs/scattermap/_marker.py | 6 +- plotly/graph_objs/sunburst/marker/_pattern.py | 62 ++++++ plotly/graph_objs/table/_cells.py | 22 +- plotly/graph_objs/table/_header.py | 12 +- plotly/graph_objs/treemap/marker/_pattern.py | 62 ++++++ plotly/validators/_validators.json | 186 ++++++++++++++++ resources/plot-schema.json | 88 ++++---- 80 files changed, 1674 insertions(+), 628 deletions(-) diff --git a/plotly/graph_objs/_bar.py b/plotly/graph_objs/_bar.py index 0e12061a8f9..5bce1c93010 100644 --- a/plotly/graph_objs/_bar.py +++ b/plotly/graph_objs/_bar.py @@ -386,8 +386,8 @@ def hovertemplate(self): (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the - secondary box, for example "{fullData.name}". To - hide the secondary box completely, use an empty tag + secondary box, for example `%{fullData.name}`. + To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1731,7 +1731,7 @@ def _prop_descriptions(self): are available. Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -2197,7 +2197,7 @@ def __init__( are available. Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc diff --git a/plotly/graph_objs/_barpolar.py b/plotly/graph_objs/_barpolar.py index a45eb7bc638..380e811c61f 100644 --- a/plotly/graph_objs/_barpolar.py +++ b/plotly/graph_objs/_barpolar.py @@ -260,7 +260,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1086,8 +1086,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1368,8 +1369,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_box.py b/plotly/graph_objs/_box.py index 34ef561d87e..c9df0f218c6 100644 --- a/plotly/graph_objs/_box.py +++ b/plotly/graph_objs/_box.py @@ -377,7 +377,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1996,8 +1996,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -2567,8 +2568,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_choropleth.py b/plotly/graph_objs/_choropleth.py index 9c55f8a52b1..8e060bcd33e 100644 --- a/plotly/graph_objs/_choropleth.py +++ b/plotly/graph_objs/_choropleth.py @@ -370,7 +370,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1196,8 +1196,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1515,8 +1516,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_choroplethmap.py b/plotly/graph_objs/_choroplethmap.py index 7c23376023d..abcd14e4a76 100644 --- a/plotly/graph_objs/_choroplethmap.py +++ b/plotly/graph_objs/_choroplethmap.py @@ -368,7 +368,7 @@ def hovertemplate(self): (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1193,7 +1193,7 @@ def _prop_descriptions(self): are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -1510,7 +1510,7 @@ def __init__( are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc diff --git a/plotly/graph_objs/_choroplethmapbox.py b/plotly/graph_objs/_choroplethmapbox.py index 8225c27ab30..ec4745dc0be 100644 --- a/plotly/graph_objs/_choroplethmapbox.py +++ b/plotly/graph_objs/_choroplethmapbox.py @@ -369,7 +369,7 @@ def hovertemplate(self): (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1198,7 +1198,7 @@ def _prop_descriptions(self): are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -1525,7 +1525,7 @@ def __init__( are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc diff --git a/plotly/graph_objs/_cone.py b/plotly/graph_objs/_cone.py index 0e85f56d56d..b5c73b2e67d 100644 --- a/plotly/graph_objs/_cone.py +++ b/plotly/graph_objs/_cone.py @@ -421,7 +421,7 @@ def hovertemplate(self): (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `norm` Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1509,8 +1509,9 @@ def _prop_descriptions(self): are available. Finally, the template string has access to variable `norm` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1927,8 +1928,9 @@ def __init__( are available. Finally, the template string has access to variable `norm` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_contour.py b/plotly/graph_objs/_contour.py index 3d4eb5c2236..51f6f9ecf0c 100644 --- a/plotly/graph_objs/_contour.py +++ b/plotly/graph_objs/_contour.py @@ -470,7 +470,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1759,8 +1759,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -2233,8 +2234,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_densitymap.py b/plotly/graph_objs/_densitymap.py index 42918490a36..25d129bb9d0 100644 --- a/plotly/graph_objs/_densitymap.py +++ b/plotly/graph_objs/_densitymap.py @@ -325,7 +325,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1161,8 +1161,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1475,8 +1476,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_densitymapbox.py b/plotly/graph_objs/_densitymapbox.py index e483328534d..59761b4739d 100644 --- a/plotly/graph_objs/_densitymapbox.py +++ b/plotly/graph_objs/_densitymapbox.py @@ -326,7 +326,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1166,8 +1166,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1489,8 +1490,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_figure.py b/plotly/graph_objs/_figure.py index a3c9f839c96..f43df0e4160 100644 --- a/plotly/graph_objs/_figure.py +++ b/plotly/graph_objs/_figure.py @@ -816,7 +816,7 @@ def add_bar( are available. Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -1336,8 +1336,9 @@ def add_barpolar( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1767,8 +1768,9 @@ def add_box( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -3068,8 +3070,9 @@ def add_choropleth( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -3452,7 +3455,7 @@ def add_choroplethmap( are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -3839,7 +3842,7 @@ def add_choroplethmapbox( are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -4247,8 +4250,9 @@ def add_cone( are available. Finally, the template string has access to variable `norm` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -4763,8 +4767,9 @@ def add_contour( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -5685,8 +5690,9 @@ def add_densitymap( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -6068,8 +6074,9 @@ def add_densitymapbox( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -6462,8 +6469,9 @@ def add_funnel( to variables `percentInitial`, `percentPrevious` and `percentTotal`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -6967,8 +6975,9 @@ def add_funnelarea( to variables `label`, `color`, `value`, `text` and `percent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -7397,8 +7406,9 @@ def add_heatmap( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -7971,7 +7981,7 @@ def add_histogram( are available. Finally, the template string has access to variable `binNumber` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -8514,8 +8524,9 @@ def add_histogram2d( are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -9056,8 +9067,9 @@ def add_histogram2dcontour( are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -9522,8 +9534,9 @@ def add_icicle( `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -9899,8 +9912,9 @@ def add_image( to variables `z`, `color` and `colormodel`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -9963,7 +9977,7 @@ def add_image( source Specifies the data URI of the image to be visualized. The URI consists of "data:image/[][;base64]," + subtype>]\\[;base64]," stream :class:`plotly.graph_objects.image.Stream` instance or dict with compatible properties @@ -10505,8 +10519,9 @@ def add_isosurface( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -11014,8 +11029,9 @@ def add_mesh3d( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -11841,7 +11857,7 @@ def add_parcats( `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. labelfont @@ -12294,8 +12310,9 @@ def add_pie( to variables `label`, `color`, `value`, `percent` and `text`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -13005,8 +13022,9 @@ def add_scatter( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -13540,8 +13558,9 @@ def add_scatter3d( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -13994,8 +14013,9 @@ def add_scattercarpet( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -14401,8 +14421,9 @@ def add_scattergeo( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -14832,8 +14853,9 @@ def add_scattergl( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -15307,8 +15329,9 @@ def add_scattermap( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -15688,8 +15711,9 @@ def add_scattermapbox( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -16095,8 +16119,9 @@ def add_scatterpolar( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -16514,8 +16539,9 @@ def add_scatterpolargl( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -16923,8 +16949,9 @@ def add_scattersmith( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -17348,8 +17375,9 @@ def add_scatterternary( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -17717,8 +17745,9 @@ def add_splom( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -18125,8 +18154,9 @@ def add_streamtube( `tubev`, `tubew`, `norm` and `divergence`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -18553,8 +18583,9 @@ def add_sunburst( `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -19002,8 +19033,9 @@ def add_surface( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -19627,8 +19659,9 @@ def add_treemap( `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -20031,8 +20064,9 @@ def add_violin( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -20583,8 +20617,9 @@ def add_volume( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -21051,8 +21086,9 @@ def add_waterfall( to variables `initial`, `delta` and `final`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -23141,9 +23177,10 @@ def add_annotation( text Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline - (
), bold (), italics (), hyperlinks - (). Tags , , , , - are also supported. + (`
`), bold (``), italics (``), + hyperlinks (``). Tags ``, + ``, ``, ``, ``, and `` are also + supported. textangle Sets the angle at which the `text` is drawn with respect to the horizontal. diff --git a/plotly/graph_objs/_figurewidget.py b/plotly/graph_objs/_figurewidget.py index 9731635870c..a67d1870e9d 100644 --- a/plotly/graph_objs/_figurewidget.py +++ b/plotly/graph_objs/_figurewidget.py @@ -818,7 +818,7 @@ def add_bar( are available. Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -1338,8 +1338,9 @@ def add_barpolar( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1769,8 +1770,9 @@ def add_box( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -3070,8 +3072,9 @@ def add_choropleth( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -3454,7 +3457,7 @@ def add_choroplethmap( are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -3841,7 +3844,7 @@ def add_choroplethmapbox( are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -4249,8 +4252,9 @@ def add_cone( are available. Finally, the template string has access to variable `norm` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -4765,8 +4769,9 @@ def add_contour( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -5687,8 +5692,9 @@ def add_densitymap( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -6070,8 +6076,9 @@ def add_densitymapbox( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -6464,8 +6471,9 @@ def add_funnel( to variables `percentInitial`, `percentPrevious` and `percentTotal`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -6969,8 +6977,9 @@ def add_funnelarea( to variables `label`, `color`, `value`, `text` and `percent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -7399,8 +7408,9 @@ def add_heatmap( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -7973,7 +7983,7 @@ def add_histogram( are available. Finally, the template string has access to variable `binNumber` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -8516,8 +8526,9 @@ def add_histogram2d( are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -9058,8 +9069,9 @@ def add_histogram2dcontour( are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -9524,8 +9536,9 @@ def add_icicle( `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -9901,8 +9914,9 @@ def add_image( to variables `z`, `color` and `colormodel`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -9965,7 +9979,7 @@ def add_image( source Specifies the data URI of the image to be visualized. The URI consists of "data:image/[][;base64]," + subtype>]\\[;base64]," stream :class:`plotly.graph_objects.image.Stream` instance or dict with compatible properties @@ -10507,8 +10521,9 @@ def add_isosurface( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -11016,8 +11031,9 @@ def add_mesh3d( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -11843,7 +11859,7 @@ def add_parcats( `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. labelfont @@ -12296,8 +12312,9 @@ def add_pie( to variables `label`, `color`, `value`, `percent` and `text`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -13007,8 +13024,9 @@ def add_scatter( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -13542,8 +13560,9 @@ def add_scatter3d( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -13996,8 +14015,9 @@ def add_scattercarpet( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -14403,8 +14423,9 @@ def add_scattergeo( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -14834,8 +14855,9 @@ def add_scattergl( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -15309,8 +15331,9 @@ def add_scattermap( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -15690,8 +15713,9 @@ def add_scattermapbox( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -16097,8 +16121,9 @@ def add_scatterpolar( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -16516,8 +16541,9 @@ def add_scatterpolargl( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -16925,8 +16951,9 @@ def add_scattersmith( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -17350,8 +17377,9 @@ def add_scatterternary( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -17719,8 +17747,9 @@ def add_splom( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -18127,8 +18156,9 @@ def add_streamtube( `tubev`, `tubew`, `norm` and `divergence`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -18555,8 +18585,9 @@ def add_sunburst( `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -19004,8 +19035,9 @@ def add_surface( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -19629,8 +19661,9 @@ def add_treemap( `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -20033,8 +20066,9 @@ def add_violin( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -20585,8 +20619,9 @@ def add_volume( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -21053,8 +21088,9 @@ def add_waterfall( to variables `initial`, `delta` and `final`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -23145,9 +23181,10 @@ def add_annotation( text Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline - (
), bold (), italics (), hyperlinks - (). Tags , , , , - are also supported. + (`
`), bold (``), italics (``), + hyperlinks (``). Tags ``, + ``, ``, ``, ``, and `` are also + supported. textangle Sets the angle at which the `text` is drawn with respect to the horizontal. diff --git a/plotly/graph_objs/_funnel.py b/plotly/graph_objs/_funnel.py index fd2682f9cc7..6689f3092aa 100644 --- a/plotly/graph_objs/_funnel.py +++ b/plotly/graph_objs/_funnel.py @@ -323,7 +323,7 @@ def hovertemplate(self): template string has access to variables `percentInitial`, `percentPrevious` and `percentTotal`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary box + `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1565,8 +1565,9 @@ def _prop_descriptions(self): to variables `percentInitial`, `percentPrevious` and `percentTotal`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -2007,8 +2008,9 @@ def __init__( to variables `percentInitial`, `percentPrevious` and `percentTotal`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_funnelarea.py b/plotly/graph_objs/_funnelarea.py index 50e316bdd19..0d4d58b99d2 100644 --- a/plotly/graph_objs/_funnelarea.py +++ b/plotly/graph_objs/_funnelarea.py @@ -259,7 +259,7 @@ def hovertemplate(self): template string has access to variables `label`, `color`, `value`, `text` and `percent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary box + `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1090,8 +1090,9 @@ def _prop_descriptions(self): to variables `label`, `color`, `value`, `text` and `percent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1388,8 +1389,9 @@ def __init__( to variables `label`, `color`, `value`, `text` and `percent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_heatmap.py b/plotly/graph_objs/_heatmap.py index 0a6819e3946..45146b6495a 100644 --- a/plotly/graph_objs/_heatmap.py +++ b/plotly/graph_objs/_heatmap.py @@ -403,7 +403,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1691,8 +1691,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -2155,8 +2156,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_histogram.py b/plotly/graph_objs/_histogram.py index 9bc14623c32..efa2fecfb7c 100644 --- a/plotly/graph_objs/_histogram.py +++ b/plotly/graph_objs/_histogram.py @@ -447,7 +447,7 @@ def hovertemplate(self): (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `binNumber` Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1628,7 +1628,7 @@ def _prop_descriptions(self): are available. Finally, the template string has access to variable `binNumber` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -2075,7 +2075,7 @@ def __init__( are available. Finally, the template string has access to variable `binNumber` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc diff --git a/plotly/graph_objs/_histogram2d.py b/plotly/graph_objs/_histogram2d.py index bf1befd5d35..154861bceef 100644 --- a/plotly/graph_objs/_histogram2d.py +++ b/plotly/graph_objs/_histogram2d.py @@ -439,7 +439,7 @@ def hovertemplate(self): (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary box + `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1588,8 +1588,9 @@ def _prop_descriptions(self): are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -2029,8 +2030,9 @@ def __init__( are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_histogram2dcontour.py b/plotly/graph_objs/_histogram2dcontour.py index 2cfc1edb21f..ae9e3762e02 100644 --- a/plotly/graph_objs/_histogram2dcontour.py +++ b/plotly/graph_objs/_histogram2dcontour.py @@ -480,7 +480,7 @@ def hovertemplate(self): (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary box + `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1626,8 +1626,9 @@ def _prop_descriptions(self): are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -2082,8 +2083,9 @@ def __init__( are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_icicle.py b/plotly/graph_objs/_icicle.py index 94d491975f9..7f657c17d86 100644 --- a/plotly/graph_objs/_icicle.py +++ b/plotly/graph_objs/_icicle.py @@ -254,8 +254,8 @@ def hovertemplate(self): template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the - secondary box, for example "{fullData.name}". To - hide the secondary box completely, use an empty tag + secondary box, for example `%{fullData.name}`. + To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1170,8 +1170,9 @@ def _prop_descriptions(self): `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1492,8 +1493,9 @@ def __init__( `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_image.py b/plotly/graph_objs/_image.py index e0f8afebd90..88220babb2a 100644 --- a/plotly/graph_objs/_image.py +++ b/plotly/graph_objs/_image.py @@ -237,7 +237,7 @@ def hovertemplate(self): template string has access to variables `z`, `color` and `colormodel`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary box + `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -521,7 +521,7 @@ def opacity(self, val): def source(self): """ Specifies the data URI of the image to be visualized. The URI - consists of "data:image/[][;base64]," + consists of "data:image/[]\\[;base64]," The 'source' property is a string and must be specified as: - A string @@ -956,8 +956,9 @@ def _prop_descriptions(self): to variables `z`, `color` and `colormodel`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1020,7 +1021,7 @@ def _prop_descriptions(self): source Specifies the data URI of the image to be visualized. The URI consists of "data:image/[][;base64]," + subtype>]\\[;base64]," stream :class:`plotly.graph_objects.image.Stream` instance or dict with compatible properties @@ -1228,8 +1229,9 @@ def __init__( to variables `z`, `color` and `colormodel`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1292,7 +1294,7 @@ def __init__( source Specifies the data URI of the image to be visualized. The URI consists of "data:image/[][;base64]," + subtype>]\\[;base64]," stream :class:`plotly.graph_objects.image.Stream` instance or dict with compatible properties diff --git a/plotly/graph_objs/_isosurface.py b/plotly/graph_objs/_isosurface.py index 1705fcf211d..307bab664c3 100644 --- a/plotly/graph_objs/_isosurface.py +++ b/plotly/graph_objs/_isosurface.py @@ -453,7 +453,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1467,8 +1467,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1860,8 +1861,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_mesh3d.py b/plotly/graph_objs/_mesh3d.py index 68928a8cae6..cdc62e2689c 100644 --- a/plotly/graph_objs/_mesh3d.py +++ b/plotly/graph_objs/_mesh3d.py @@ -564,7 +564,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1751,8 +1751,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -2224,8 +2225,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_parcats.py b/plotly/graph_objs/_parcats.py index bea3d956e2f..5f4919a8c20 100644 --- a/plotly/graph_objs/_parcats.py +++ b/plotly/graph_objs/_parcats.py @@ -254,8 +254,8 @@ def hovertemplate(self): template string has access to variables `count`, `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `` is displayed in the - secondary box, for example "{fullData.name}". To - hide the secondary box completely, use an empty tag + secondary box, for example `%{fullData.name}`. + To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -626,7 +626,7 @@ def _prop_descriptions(self): `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. labelfont @@ -809,7 +809,7 @@ def __init__( `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. labelfont diff --git a/plotly/graph_objs/_pie.py b/plotly/graph_objs/_pie.py index f2eda4ab887..615f719c720 100644 --- a/plotly/graph_objs/_pie.py +++ b/plotly/graph_objs/_pie.py @@ -287,7 +287,7 @@ def hovertemplate(self): template string has access to variables `label`, `color`, `value`, `percent` and `text`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary box + `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1249,8 +1249,9 @@ def _prop_descriptions(self): to variables `label`, `color`, `value`, `percent` and `text`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1583,8 +1584,9 @@ def __init__( to variables `label`, `color`, `value`, `percent` and `text`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scatter.py b/plotly/graph_objs/_scatter.py index 9bef62b011c..b9b6bf210f8 100644 --- a/plotly/graph_objs/_scatter.py +++ b/plotly/graph_objs/_scatter.py @@ -504,7 +504,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1830,8 +1830,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -2345,8 +2346,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scatter3d.py b/plotly/graph_objs/_scatter3d.py index 229056e2d8e..ed6889b4273 100644 --- a/plotly/graph_objs/_scatter3d.py +++ b/plotly/graph_objs/_scatter3d.py @@ -269,7 +269,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1316,8 +1316,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1679,8 +1680,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scattercarpet.py b/plotly/graph_objs/_scattercarpet.py index 4b846bffa2f..a06c597f308 100644 --- a/plotly/graph_objs/_scattercarpet.py +++ b/plotly/graph_objs/_scattercarpet.py @@ -374,7 +374,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1229,8 +1229,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1562,8 +1563,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scattergeo.py b/plotly/graph_objs/_scattergeo.py index 4c0fb090e14..c6d8936ec3d 100644 --- a/plotly/graph_objs/_scattergeo.py +++ b/plotly/graph_objs/_scattergeo.py @@ -320,7 +320,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1238,8 +1238,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1578,8 +1579,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scattergl.py b/plotly/graph_objs/_scattergl.py index bccddc41564..d81af3ed352 100644 --- a/plotly/graph_objs/_scattergl.py +++ b/plotly/graph_objs/_scattergl.py @@ -356,7 +356,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1520,8 +1520,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1940,8 +1941,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scattermap.py b/plotly/graph_objs/_scattermap.py index a4b82a931c9..ad47dfc2730 100644 --- a/plotly/graph_objs/_scattermap.py +++ b/plotly/graph_objs/_scattermap.py @@ -290,7 +290,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1137,8 +1137,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1449,8 +1450,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scattermapbox.py b/plotly/graph_objs/_scattermapbox.py index 3c20238aa02..c23b9bb8317 100644 --- a/plotly/graph_objs/_scattermapbox.py +++ b/plotly/graph_objs/_scattermapbox.py @@ -292,7 +292,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1143,8 +1143,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1464,8 +1465,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scatterpolar.py b/plotly/graph_objs/_scatterpolar.py index 5168023fac0..34d6328bf0f 100644 --- a/plotly/graph_objs/_scatterpolar.py +++ b/plotly/graph_objs/_scatterpolar.py @@ -343,7 +343,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1283,8 +1283,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1634,8 +1635,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scatterpolargl.py b/plotly/graph_objs/_scatterpolargl.py index f75aa05cd2a..781030c5ec7 100644 --- a/plotly/graph_objs/_scatterpolargl.py +++ b/plotly/graph_objs/_scatterpolargl.py @@ -308,7 +308,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1248,8 +1248,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1597,8 +1598,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scattersmith.py b/plotly/graph_objs/_scattersmith.py index e43d34b499a..a38d4cd3f21 100644 --- a/plotly/graph_objs/_scattersmith.py +++ b/plotly/graph_objs/_scattersmith.py @@ -300,7 +300,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1179,8 +1179,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1512,8 +1513,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scatterternary.py b/plotly/graph_objs/_scatterternary.py index db865eaf195..b0b3ca3fcf0 100644 --- a/plotly/graph_objs/_scatterternary.py +++ b/plotly/graph_objs/_scatterternary.py @@ -420,7 +420,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1273,8 +1273,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1626,8 +1627,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_splom.py b/plotly/graph_objs/_splom.py index 6dda1855e82..803f9cd234c 100644 --- a/plotly/graph_objs/_splom.py +++ b/plotly/graph_objs/_splom.py @@ -239,7 +239,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -986,8 +986,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1277,8 +1278,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_streamtube.py b/plotly/graph_objs/_streamtube.py index de98ac33d05..fba538c29c0 100644 --- a/plotly/graph_objs/_streamtube.py +++ b/plotly/graph_objs/_streamtube.py @@ -399,8 +399,8 @@ def hovertemplate(self): template string has access to variables `tubex`, `tubey`, `tubez`, `tubeu`, `tubev`, `tubew`, `norm` and `divergence`. Anything contained in tag `` is displayed in the - secondary box, for example "{fullData.name}". To - hide the secondary box completely, use an empty tag + secondary box, for example `%{fullData.name}`. + To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1452,8 +1452,9 @@ def _prop_descriptions(self): `tubev`, `tubew`, `norm` and `divergence`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1853,8 +1854,9 @@ def __init__( `tubev`, `tubew`, `norm` and `divergence`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_sunburst.py b/plotly/graph_objs/_sunburst.py index 3f14360a1a5..7e3000fa81b 100644 --- a/plotly/graph_objs/_sunburst.py +++ b/plotly/graph_objs/_sunburst.py @@ -253,8 +253,8 @@ def hovertemplate(self): template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the - secondary box, for example "{fullData.name}". To - hide the secondary box completely, use an empty tag + secondary box, for example `%{fullData.name}`. + To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1157,8 +1157,9 @@ def _prop_descriptions(self): `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1483,8 +1484,9 @@ def __init__( `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_surface.py b/plotly/graph_objs/_surface.py index a2d65c3b3e5..12ea2060ad6 100644 --- a/plotly/graph_objs/_surface.py +++ b/plotly/graph_objs/_surface.py @@ -454,7 +454,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1446,8 +1446,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1840,8 +1841,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_treemap.py b/plotly/graph_objs/_treemap.py index 69dbd3b3ae4..f6df8010aeb 100644 --- a/plotly/graph_objs/_treemap.py +++ b/plotly/graph_objs/_treemap.py @@ -253,8 +253,8 @@ def hovertemplate(self): template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the - secondary box, for example "{fullData.name}". To - hide the secondary box completely, use an empty tag + secondary box, for example `%{fullData.name}`. + To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1150,8 +1150,9 @@ def _prop_descriptions(self): `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1469,8 +1470,9 @@ def __init__( `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_violin.py b/plotly/graph_objs/_violin.py index 943a5f2d377..3e83919e916 100644 --- a/plotly/graph_objs/_violin.py +++ b/plotly/graph_objs/_violin.py @@ -306,7 +306,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1467,8 +1467,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1893,8 +1894,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_volume.py b/plotly/graph_objs/_volume.py index 9bc3099f422..8e77cfba558 100644 --- a/plotly/graph_objs/_volume.py +++ b/plotly/graph_objs/_volume.py @@ -454,7 +454,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1493,8 +1493,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1898,8 +1899,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_waterfall.py b/plotly/graph_objs/_waterfall.py index 04dc7746bb3..c37283badba 100644 --- a/plotly/graph_objs/_waterfall.py +++ b/plotly/graph_objs/_waterfall.py @@ -367,7 +367,7 @@ def hovertemplate(self): template string has access to variables `initial`, `delta` and `final`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary box + `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1707,8 +1707,9 @@ def _prop_descriptions(self): to variables `initial`, `delta` and `final`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -2175,8 +2176,9 @@ def __init__( to variables `initial`, `delta` and `final`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/bar/marker/_pattern.py b/plotly/graph_objs/bar/marker/_pattern.py index 71b73ab9642..ce8bd8a10ae 100644 --- a/plotly/graph_objs/bar/marker/_pattern.py +++ b/plotly/graph_objs/bar/marker/_pattern.py @@ -15,6 +15,8 @@ class Pattern(_BaseTraceHierarchyType): "fgcolorsrc", "fgopacity", "fillmode", + "path", + "pathsrc", "shape", "shapesrc", "size", @@ -150,6 +152,46 @@ def fillmode(self): def fillmode(self, val): self["fillmode"] = val + @property + def path(self): + """ + Sets a custom path for pattern fill. Use with no `shape` or + `solidity`, provide an SVG path string for the regions of the + square from (0,0) to (`size`,`size`) to color. + + The 'path' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["path"] + + @path.setter + def path(self, val): + self["path"] = val + + @property + def pathsrc(self): + """ + Sets the source reference on Chart Studio Cloud for `path`. + + The 'pathsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["pathsrc"] + + @pathsrc.setter + def pathsrc(self, val): + self["pathsrc"] = val + @property def shape(self): """ @@ -294,6 +336,14 @@ def _prop_descriptions(self): fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -327,6 +377,8 @@ def __init__( fgcolorsrc=None, fgopacity=None, fillmode=None, + path=None, + pathsrc=None, shape=None, shapesrc=None, size=None, @@ -370,6 +422,14 @@ def __init__( fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -423,6 +483,8 @@ def __init__( self._set_property("fgcolorsrc", arg, fgcolorsrc) self._set_property("fgopacity", arg, fgopacity) self._set_property("fillmode", arg, fillmode) + self._set_property("path", arg, path) + self._set_property("pathsrc", arg, pathsrc) self._set_property("shape", arg, shape) self._set_property("shapesrc", arg, shapesrc) self._set_property("size", arg, size) diff --git a/plotly/graph_objs/barpolar/marker/_pattern.py b/plotly/graph_objs/barpolar/marker/_pattern.py index e94caf71875..94329f6afb4 100644 --- a/plotly/graph_objs/barpolar/marker/_pattern.py +++ b/plotly/graph_objs/barpolar/marker/_pattern.py @@ -15,6 +15,8 @@ class Pattern(_BaseTraceHierarchyType): "fgcolorsrc", "fgopacity", "fillmode", + "path", + "pathsrc", "shape", "shapesrc", "size", @@ -150,6 +152,46 @@ def fillmode(self): def fillmode(self, val): self["fillmode"] = val + @property + def path(self): + """ + Sets a custom path for pattern fill. Use with no `shape` or + `solidity`, provide an SVG path string for the regions of the + square from (0,0) to (`size`,`size`) to color. + + The 'path' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["path"] + + @path.setter + def path(self, val): + self["path"] = val + + @property + def pathsrc(self): + """ + Sets the source reference on Chart Studio Cloud for `path`. + + The 'pathsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["pathsrc"] + + @pathsrc.setter + def pathsrc(self, val): + self["pathsrc"] = val + @property def shape(self): """ @@ -294,6 +336,14 @@ def _prop_descriptions(self): fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -327,6 +377,8 @@ def __init__( fgcolorsrc=None, fgopacity=None, fillmode=None, + path=None, + pathsrc=None, shape=None, shapesrc=None, size=None, @@ -370,6 +422,14 @@ def __init__( fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -423,6 +483,8 @@ def __init__( self._set_property("fgcolorsrc", arg, fgcolorsrc) self._set_property("fgopacity", arg, fgopacity) self._set_property("fillmode", arg, fillmode) + self._set_property("path", arg, path) + self._set_property("pathsrc", arg, pathsrc) self._set_property("shape", arg, shape) self._set_property("shapesrc", arg, shapesrc) self._set_property("size", arg, size) diff --git a/plotly/graph_objs/carpet/_aaxis.py b/plotly/graph_objs/carpet/_aaxis.py index f10597ef659..389bdb3eecc 100644 --- a/plotly/graph_objs/carpet/_aaxis.py +++ b/plotly/graph_objs/carpet/_aaxis.py @@ -721,7 +721,7 @@ def range(self, val): def rangemode(self): """ If "normal", the range is computed in relation to the extrema - of the input data. If "tozero", the range extends to 0, + of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. @@ -1381,7 +1381,7 @@ def _prop_descriptions(self): appears. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. @@ -1670,7 +1670,7 @@ def __init__( appears. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. diff --git a/plotly/graph_objs/carpet/_baxis.py b/plotly/graph_objs/carpet/_baxis.py index f268f698338..fc0df8f0590 100644 --- a/plotly/graph_objs/carpet/_baxis.py +++ b/plotly/graph_objs/carpet/_baxis.py @@ -721,7 +721,7 @@ def range(self, val): def rangemode(self): """ If "normal", the range is computed in relation to the extrema - of the input data. If "tozero", the range extends to 0, + of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. @@ -1381,7 +1381,7 @@ def _prop_descriptions(self): appears. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. @@ -1670,7 +1670,7 @@ def __init__( appears. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. diff --git a/plotly/graph_objs/contour/_contours.py b/plotly/graph_objs/contour/_contours.py index 122d8d20b26..430811a1fe9 100644 --- a/plotly/graph_objs/contour/_contours.py +++ b/plotly/graph_objs/contour/_contours.py @@ -115,7 +115,7 @@ def operation(self): Sets the constraint operation. "=" keeps regions equal to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and - "(]" keep regions inside `value[0]` to `value[1]` "][", ")(", + "(]" keep regions inside `value[0]` to `value[1]` "]\\[", ")(", "](", ")[" keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter @@ -123,7 +123,7 @@ def operation(self): The 'operation' property is an enumeration that may be specified as: - One of the following enumeration values: - ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', '][', + ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', ']\[', ')(', '](', ')['] Returns @@ -238,11 +238,11 @@ def value(self): """ Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values - (=,<,>=,>,<=) "value" is expected to be a number. When + (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - ([],(),[),(],][,)(,](,)[) "value" is expected to be an array of - two numbers where the first is the lower bound and the second - is the upper bound. + (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be an + array of two numbers where the first is the lower bound and the + second is the upper bound. The 'value' property accepts values of any type @@ -283,10 +283,11 @@ def _prop_descriptions(self): to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "][", ")(", "](", ")[" keep regions outside - `value[0]` to value[1]` Open vs. closed intervals make - no difference to constraint display, but all versions - are allowed for consistency with filter transforms. + `value[1]` "]\\[", ")(", "](", ")[" keep regions + outside `value[0]` to value[1]` Open vs. closed + intervals make no difference to constraint display, but + all versions are allowed for consistency with filter + transforms. showlabels Determines whether to label the contour lines with their values. @@ -309,11 +310,11 @@ def _prop_descriptions(self): value Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values - (=,<,>=,>,<=) "value" is expected to be a number. When - `operation` is set to one of the interval values - ([],(),[),(],][,)(,](,)[) "value" is expected to be an - array of two numbers where the first is the lower bound - and the second is the upper bound. + (`=,<,>=,>,<=`) "value" is expected to be a number. + When `operation` is set to one of the interval values + (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + an array of two numbers where the first is the lower + bound and the second is the upper bound. """ def __init__( @@ -365,10 +366,11 @@ def __init__( to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "][", ")(", "](", ")[" keep regions outside - `value[0]` to value[1]` Open vs. closed intervals make - no difference to constraint display, but all versions - are allowed for consistency with filter transforms. + `value[1]` "]\\[", ")(", "](", ")[" keep regions + outside `value[0]` to value[1]` Open vs. closed + intervals make no difference to constraint display, but + all versions are allowed for consistency with filter + transforms. showlabels Determines whether to label the contour lines with their values. @@ -391,11 +393,11 @@ def __init__( value Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values - (=,<,>=,>,<=) "value" is expected to be a number. When - `operation` is set to one of the interval values - ([],(),[),(],][,)(,](,)[) "value" is expected to be an - array of two numbers where the first is the lower bound - and the second is the upper bound. + (`=,<,>=,>,<=`) "value" is expected to be a number. + When `operation` is set to one of the interval values + (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + an array of two numbers where the first is the lower + bound and the second is the upper bound. Returns ------- diff --git a/plotly/graph_objs/contourcarpet/_contours.py b/plotly/graph_objs/contourcarpet/_contours.py index 0b5e3fbe175..c17ec3ff88e 100644 --- a/plotly/graph_objs/contourcarpet/_contours.py +++ b/plotly/graph_objs/contourcarpet/_contours.py @@ -114,7 +114,7 @@ def operation(self): Sets the constraint operation. "=" keeps regions equal to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and - "(]" keep regions inside `value[0]` to `value[1]` "][", ")(", + "(]" keep regions inside `value[0]` to `value[1]` "]\\[", ")(", "](", ")[" keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter @@ -122,7 +122,7 @@ def operation(self): The 'operation' property is an enumeration that may be specified as: - One of the following enumeration values: - ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', '][', + ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', ']\[', ')(', '](', ')['] Returns @@ -237,11 +237,11 @@ def value(self): """ Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values - (=,<,>=,>,<=) "value" is expected to be a number. When + (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - ([],(),[),(],][,)(,](,)[) "value" is expected to be an array of - two numbers where the first is the lower bound and the second - is the upper bound. + (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be an + array of two numbers where the first is the lower bound and the + second is the upper bound. The 'value' property accepts values of any type @@ -281,10 +281,11 @@ def _prop_descriptions(self): to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "][", ")(", "](", ")[" keep regions outside - `value[0]` to value[1]` Open vs. closed intervals make - no difference to constraint display, but all versions - are allowed for consistency with filter transforms. + `value[1]` "]\\[", ")(", "](", ")[" keep regions + outside `value[0]` to value[1]` Open vs. closed + intervals make no difference to constraint display, but + all versions are allowed for consistency with filter + transforms. showlabels Determines whether to label the contour lines with their values. @@ -307,11 +308,11 @@ def _prop_descriptions(self): value Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values - (=,<,>=,>,<=) "value" is expected to be a number. When - `operation` is set to one of the interval values - ([],(),[),(],][,)(,](,)[) "value" is expected to be an - array of two numbers where the first is the lower bound - and the second is the upper bound. + (`=,<,>=,>,<=`) "value" is expected to be a number. + When `operation` is set to one of the interval values + (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + an array of two numbers where the first is the lower + bound and the second is the upper bound. """ def __init__( @@ -362,10 +363,11 @@ def __init__( to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "][", ")(", "](", ")[" keep regions outside - `value[0]` to value[1]` Open vs. closed intervals make - no difference to constraint display, but all versions - are allowed for consistency with filter transforms. + `value[1]` "]\\[", ")(", "](", ")[" keep regions + outside `value[0]` to value[1]` Open vs. closed + intervals make no difference to constraint display, but + all versions are allowed for consistency with filter + transforms. showlabels Determines whether to label the contour lines with their values. @@ -388,11 +390,11 @@ def __init__( value Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values - (=,<,>=,>,<=) "value" is expected to be a number. When - `operation` is set to one of the interval values - ([],(),[),(],][,)(,](,)[) "value" is expected to be an - array of two numbers where the first is the lower bound - and the second is the upper bound. + (`=,<,>=,>,<=`) "value" is expected to be a number. + When `operation` is set to one of the interval values + (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + an array of two numbers where the first is the lower + bound and the second is the upper bound. Returns ------- diff --git a/plotly/graph_objs/funnelarea/marker/_pattern.py b/plotly/graph_objs/funnelarea/marker/_pattern.py index 99e8420f9e1..cf447b7bc4e 100644 --- a/plotly/graph_objs/funnelarea/marker/_pattern.py +++ b/plotly/graph_objs/funnelarea/marker/_pattern.py @@ -15,6 +15,8 @@ class Pattern(_BaseTraceHierarchyType): "fgcolorsrc", "fgopacity", "fillmode", + "path", + "pathsrc", "shape", "shapesrc", "size", @@ -150,6 +152,46 @@ def fillmode(self): def fillmode(self, val): self["fillmode"] = val + @property + def path(self): + """ + Sets a custom path for pattern fill. Use with no `shape` or + `solidity`, provide an SVG path string for the regions of the + square from (0,0) to (`size`,`size`) to color. + + The 'path' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["path"] + + @path.setter + def path(self, val): + self["path"] = val + + @property + def pathsrc(self): + """ + Sets the source reference on Chart Studio Cloud for `path`. + + The 'pathsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["pathsrc"] + + @pathsrc.setter + def pathsrc(self, val): + self["pathsrc"] = val + @property def shape(self): """ @@ -294,6 +336,14 @@ def _prop_descriptions(self): fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -327,6 +377,8 @@ def __init__( fgcolorsrc=None, fgopacity=None, fillmode=None, + path=None, + pathsrc=None, shape=None, shapesrc=None, size=None, @@ -370,6 +422,14 @@ def __init__( fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -423,6 +483,8 @@ def __init__( self._set_property("fgcolorsrc", arg, fgcolorsrc) self._set_property("fgopacity", arg, fgopacity) self._set_property("fillmode", arg, fillmode) + self._set_property("path", arg, path) + self._set_property("pathsrc", arg, pathsrc) self._set_property("shape", arg, shape) self._set_property("shapesrc", arg, shapesrc) self._set_property("size", arg, size) diff --git a/plotly/graph_objs/histogram/marker/_pattern.py b/plotly/graph_objs/histogram/marker/_pattern.py index 1b3673a7086..bfc03a0367a 100644 --- a/plotly/graph_objs/histogram/marker/_pattern.py +++ b/plotly/graph_objs/histogram/marker/_pattern.py @@ -15,6 +15,8 @@ class Pattern(_BaseTraceHierarchyType): "fgcolorsrc", "fgopacity", "fillmode", + "path", + "pathsrc", "shape", "shapesrc", "size", @@ -150,6 +152,46 @@ def fillmode(self): def fillmode(self, val): self["fillmode"] = val + @property + def path(self): + """ + Sets a custom path for pattern fill. Use with no `shape` or + `solidity`, provide an SVG path string for the regions of the + square from (0,0) to (`size`,`size`) to color. + + The 'path' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["path"] + + @path.setter + def path(self, val): + self["path"] = val + + @property + def pathsrc(self): + """ + Sets the source reference on Chart Studio Cloud for `path`. + + The 'pathsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["pathsrc"] + + @pathsrc.setter + def pathsrc(self, val): + self["pathsrc"] = val + @property def shape(self): """ @@ -294,6 +336,14 @@ def _prop_descriptions(self): fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -327,6 +377,8 @@ def __init__( fgcolorsrc=None, fgopacity=None, fillmode=None, + path=None, + pathsrc=None, shape=None, shapesrc=None, size=None, @@ -370,6 +422,14 @@ def __init__( fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -423,6 +483,8 @@ def __init__( self._set_property("fgcolorsrc", arg, fgcolorsrc) self._set_property("fgopacity", arg, fgopacity) self._set_property("fillmode", arg, fillmode) + self._set_property("path", arg, path) + self._set_property("pathsrc", arg, pathsrc) self._set_property("shape", arg, shape) self._set_property("shapesrc", arg, shapesrc) self._set_property("size", arg, size) diff --git a/plotly/graph_objs/histogram2dcontour/_contours.py b/plotly/graph_objs/histogram2dcontour/_contours.py index fd0c3745697..2dade36cdb1 100644 --- a/plotly/graph_objs/histogram2dcontour/_contours.py +++ b/plotly/graph_objs/histogram2dcontour/_contours.py @@ -115,7 +115,7 @@ def operation(self): Sets the constraint operation. "=" keeps regions equal to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and - "(]" keep regions inside `value[0]` to `value[1]` "][", ")(", + "(]" keep regions inside `value[0]` to `value[1]` "]\\[", ")(", "](", ")[" keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter @@ -123,7 +123,7 @@ def operation(self): The 'operation' property is an enumeration that may be specified as: - One of the following enumeration values: - ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', '][', + ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', ']\[', ')(', '](', ')['] Returns @@ -238,11 +238,11 @@ def value(self): """ Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values - (=,<,>=,>,<=) "value" is expected to be a number. When + (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - ([],(),[),(],][,)(,](,)[) "value" is expected to be an array of - two numbers where the first is the lower bound and the second - is the upper bound. + (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be an + array of two numbers where the first is the lower bound and the + second is the upper bound. The 'value' property accepts values of any type @@ -283,10 +283,11 @@ def _prop_descriptions(self): to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "][", ")(", "](", ")[" keep regions outside - `value[0]` to value[1]` Open vs. closed intervals make - no difference to constraint display, but all versions - are allowed for consistency with filter transforms. + `value[1]` "]\\[", ")(", "](", ")[" keep regions + outside `value[0]` to value[1]` Open vs. closed + intervals make no difference to constraint display, but + all versions are allowed for consistency with filter + transforms. showlabels Determines whether to label the contour lines with their values. @@ -309,11 +310,11 @@ def _prop_descriptions(self): value Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values - (=,<,>=,>,<=) "value" is expected to be a number. When - `operation` is set to one of the interval values - ([],(),[),(],][,)(,](,)[) "value" is expected to be an - array of two numbers where the first is the lower bound - and the second is the upper bound. + (`=,<,>=,>,<=`) "value" is expected to be a number. + When `operation` is set to one of the interval values + (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + an array of two numbers where the first is the lower + bound and the second is the upper bound. """ def __init__( @@ -365,10 +366,11 @@ def __init__( to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "][", ")(", "](", ")[" keep regions outside - `value[0]` to value[1]` Open vs. closed intervals make - no difference to constraint display, but all versions - are allowed for consistency with filter transforms. + `value[1]` "]\\[", ")(", "](", ")[" keep regions + outside `value[0]` to value[1]` Open vs. closed + intervals make no difference to constraint display, but + all versions are allowed for consistency with filter + transforms. showlabels Determines whether to label the contour lines with their values. @@ -391,11 +393,11 @@ def __init__( value Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values - (=,<,>=,>,<=) "value" is expected to be a number. When - `operation` is set to one of the interval values - ([],(),[),(],][,)(,](,)[) "value" is expected to be an - array of two numbers where the first is the lower bound - and the second is the upper bound. + (`=,<,>=,>,<=`) "value" is expected to be a number. + When `operation` is set to one of the interval values + (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + an array of two numbers where the first is the lower + bound and the second is the upper bound. Returns ------- diff --git a/plotly/graph_objs/icicle/marker/_pattern.py b/plotly/graph_objs/icicle/marker/_pattern.py index 1e58174135d..ac85c878504 100644 --- a/plotly/graph_objs/icicle/marker/_pattern.py +++ b/plotly/graph_objs/icicle/marker/_pattern.py @@ -15,6 +15,8 @@ class Pattern(_BaseTraceHierarchyType): "fgcolorsrc", "fgopacity", "fillmode", + "path", + "pathsrc", "shape", "shapesrc", "size", @@ -150,6 +152,46 @@ def fillmode(self): def fillmode(self, val): self["fillmode"] = val + @property + def path(self): + """ + Sets a custom path for pattern fill. Use with no `shape` or + `solidity`, provide an SVG path string for the regions of the + square from (0,0) to (`size`,`size`) to color. + + The 'path' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["path"] + + @path.setter + def path(self, val): + self["path"] = val + + @property + def pathsrc(self): + """ + Sets the source reference on Chart Studio Cloud for `path`. + + The 'pathsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["pathsrc"] + + @pathsrc.setter + def pathsrc(self, val): + self["pathsrc"] = val + @property def shape(self): """ @@ -294,6 +336,14 @@ def _prop_descriptions(self): fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -327,6 +377,8 @@ def __init__( fgcolorsrc=None, fgopacity=None, fillmode=None, + path=None, + pathsrc=None, shape=None, shapesrc=None, size=None, @@ -370,6 +422,14 @@ def __init__( fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -423,6 +483,8 @@ def __init__( self._set_property("fgcolorsrc", arg, fgcolorsrc) self._set_property("fgopacity", arg, fgopacity) self._set_property("fillmode", arg, fillmode) + self._set_property("path", arg, path) + self._set_property("pathsrc", arg, pathsrc) self._set_property("shape", arg, shape) self._set_property("shapesrc", arg, shapesrc) self._set_property("size", arg, size) diff --git a/plotly/graph_objs/layout/_annotation.py b/plotly/graph_objs/layout/_annotation.py index 5be9964935c..f066a671d95 100644 --- a/plotly/graph_objs/layout/_annotation.py +++ b/plotly/graph_objs/layout/_annotation.py @@ -226,7 +226,7 @@ def axref(self): - One of the following enumeration values: ['pixel'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -288,7 +288,7 @@ def ayref(self): - One of the following enumeration values: ['pixel'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -690,9 +690,10 @@ def templateitemname(self, val): def text(self): """ Sets the text associated with this annotation. Plotly uses a - subset of HTML tags to do things like newline (
), bold - (), italics (), hyperlinks (). - Tags , , , , are also supported. + subset of HTML tags to do things like newline (`
`), bold + (``), italics (``), hyperlinks (``). Tags ``, ``, ``, ``, ``, + and `` are also supported. The 'text' property is a string and must be specified as: - A string @@ -875,7 +876,7 @@ def xref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -993,7 +994,7 @@ def yref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -1205,9 +1206,10 @@ def _prop_descriptions(self): text Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline - (
), bold (), italics (), hyperlinks - (). Tags , , , , - are also supported. + (`
`), bold (``), italics (``), + hyperlinks (``). Tags ``, + ``, ``, ``, ``, and `` are also + supported. textangle Sets the angle at which the `text` is drawn with respect to the horizontal. @@ -1542,9 +1544,10 @@ def __init__( text Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline - (
), bold (), italics (), hyperlinks - (). Tags , , , , - are also supported. + (`
`), bold (``), italics (``), + hyperlinks (``). Tags ``, + ``, ``, ``, ``, and `` are also + supported. textangle Sets the angle at which the `text` is drawn with respect to the horizontal. diff --git a/plotly/graph_objs/layout/_grid.py b/plotly/graph_objs/layout/_grid.py index 8788027b3a4..c364d366744 100644 --- a/plotly/graph_objs/layout/_grid.py +++ b/plotly/graph_objs/layout/_grid.py @@ -145,11 +145,11 @@ def subplots(self): The 'subplots' property is an info array that may be specified as: * a 2D list where: - The 'subplots[i][j]' property is an enumeration that may be specified as: + The 'subplots[i]\[j]' property is an enumeration that may be specified as: - One of the following enumeration values: [''] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?y([2-9]|[1-9][0-9]+)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?y([2-9]|[1-9]\[0-9]+)?$'] Returns ------- @@ -177,7 +177,7 @@ def xaxes(self): - One of the following enumeration values: [''] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -246,7 +246,7 @@ def yaxes(self): - One of the following enumeration values: [''] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_image.py b/plotly/graph_objs/layout/_image.py index 33865e42ac6..402c17fef77 100644 --- a/plotly/graph_objs/layout/_image.py +++ b/plotly/graph_objs/layout/_image.py @@ -280,7 +280,7 @@ def xref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -349,7 +349,7 @@ def yref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_legend.py b/plotly/graph_objs/layout/_legend.py index 7df6dadbe34..168fc6b6261 100644 --- a/plotly/graph_objs/layout/_legend.py +++ b/plotly/graph_objs/layout/_legend.py @@ -22,6 +22,7 @@ class Legend(_BaseLayoutHierarchyType): "itemdoubleclick", "itemsizing", "itemwidth", + "maxheight", "orientation", "title", "tracegroupgap", @@ -308,6 +309,31 @@ def itemwidth(self): def itemwidth(self, val): self["itemwidth"] = val + @property + def maxheight(self): + """ + Sets the max height (in px) of the legend, or max height ratio + (reference height * ratio) if less than one. Default value is: + 0.5 for horizontal legends; 1 for vertical legends. The minimum + allowed height is 30px. For a ratio of 0.5, the legend will + take up to 50% of the reference height before displaying a + scrollbar. The reference height is the full layout height + except for vertically oriented legends with a `yref` of + `"paper"`, where the reference height is the plot height. + + The 'maxheight' property is a number and may be specified as: + - An int or float in the interval [0, inf] + + Returns + ------- + int|float + """ + return self["maxheight"] + + @maxheight.setter + def maxheight(self, val): + self["maxheight"] = val + @property def orientation(self): """ @@ -636,6 +662,17 @@ def _prop_descriptions(self): itemwidth Sets the width (in px) of the legend item symbols (the part other than the title.text). + maxheight + Sets the max height (in px) of the legend, or max + height ratio (reference height * ratio) if less than + one. Default value is: 0.5 for horizontal legends; 1 + for vertical legends. The minimum allowed height is + 30px. For a ratio of 0.5, the legend will take up to + 50% of the reference height before displaying a + scrollbar. The reference height is the full layout + height except for vertically oriented legends with a + `yref` of `"paper"`, where the reference height is the + plot height. orientation Sets the orientation of the legend. title @@ -723,6 +760,7 @@ def __init__( itemdoubleclick=None, itemsizing=None, itemwidth=None, + maxheight=None, orientation=None, title=None, tracegroupgap=None, @@ -792,6 +830,17 @@ def __init__( itemwidth Sets the width (in px) of the legend item symbols (the part other than the title.text). + maxheight + Sets the max height (in px) of the legend, or max + height ratio (reference height * ratio) if less than + one. Default value is: 0.5 for horizontal legends; 1 + for vertical legends. The minimum allowed height is + 30px. For a ratio of 0.5, the legend will take up to + 50% of the reference height before displaying a + scrollbar. The reference height is the full layout + height except for vertically oriented legends with a + `yref` of `"paper"`, where the reference height is the + plot height. orientation Sets the orientation of the legend. title @@ -899,6 +948,7 @@ def __init__( self._set_property("itemdoubleclick", arg, itemdoubleclick) self._set_property("itemsizing", arg, itemsizing) self._set_property("itemwidth", arg, itemwidth) + self._set_property("maxheight", arg, maxheight) self._set_property("orientation", arg, orientation) self._set_property("title", arg, title) self._set_property("tracegroupgap", arg, tracegroupgap) diff --git a/plotly/graph_objs/layout/_selection.py b/plotly/graph_objs/layout/_selection.py index 3ebf7419c32..799a2e8d4e1 100644 --- a/plotly/graph_objs/layout/_selection.py +++ b/plotly/graph_objs/layout/_selection.py @@ -206,7 +206,7 @@ def xref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -271,7 +271,7 @@ def yref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_shape.py b/plotly/graph_objs/layout/_shape.py index 8923d1c172f..38b7eada241 100644 --- a/plotly/graph_objs/layout/_shape.py +++ b/plotly/graph_objs/layout/_shape.py @@ -564,7 +564,7 @@ def xref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -720,7 +720,7 @@ def yref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_xaxis.py b/plotly/graph_objs/layout/_xaxis.py index 901e4180b08..160f7fcff4e 100644 --- a/plotly/graph_objs/layout/_xaxis.py +++ b/plotly/graph_objs/layout/_xaxis.py @@ -101,6 +101,7 @@ class XAxis(_BaseLayoutHierarchyType): "visible", "zeroline", "zerolinecolor", + "zerolinelayer", "zerolinewidth", } @@ -115,8 +116,8 @@ def anchor(self): - One of the following enumeration values: ['free'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$', - '^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', + '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -780,8 +781,8 @@ def matches(self): The 'matches' property is an enumeration that may be specified as: - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$', - '^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', + '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -924,8 +925,8 @@ def overlaying(self): - One of the following enumeration values: ['free'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$', - '^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', + '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -1034,7 +1035,7 @@ def rangebreakdefaults(self, val): def rangemode(self): """ If "normal", the range is computed in relation to the extrema - of the input data. If "tozero", the range extends to 0, + of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -1121,8 +1122,8 @@ def scaleanchor(self): - One of the following enumeration values: [False] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$', - '^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', + '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -1715,12 +1716,13 @@ def ticklabeloverflow(self, val): @property def ticklabelposition(self): """ - Determines where tick labels are drawn with respect to the axis - Please note that top or bottom has no effect on x axes or when - `ticklabelmode` is set to "period". Similarly left or right has - no effect on y axes or when `ticklabelmode` is set to "period". - Has no effect on "multicategory" axes or when `tickson` is set - to "boundaries". When used on axes linked by `matches` or + Determines where tick labels are drawn with respect to the + axis. Please note that top or bottom has no effect on x axes or + when `ticklabelmode` is set to "period" or when `tickson` is + set to "boundaries". Similarly, left or right has no effect on + y axes or when `ticklabelmode` is set to "period" or when + `tickson` is set to "boundaries". Has no effect on + "multicategory" axes. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match. @@ -2152,6 +2154,30 @@ def zerolinecolor(self): def zerolinecolor(self, val): self["zerolinecolor"] = val + @property + def zerolinelayer(self): + """ + Sets the layer on which this zeroline is displayed. If *above + traces*, this zeroline is displayed above all the subplot's + traces If *below traces*, this zeroline is displayed below all + the subplot's traces, but above the grid lines. Limitation: + "zerolinelayer" currently has no effect if the "zorder" + property is set on any trace. + + The 'zerolinelayer' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['above traces', 'below traces'] + + Returns + ------- + Any + """ + return self["zerolinelayer"] + + @zerolinelayer.setter + def zerolinelayer(self, val): + self["zerolinelayer"] = val + @property def zerolinewidth(self): """ @@ -2414,7 +2440,7 @@ def _prop_descriptions(self): layout.xaxis.rangebreaks rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -2581,12 +2607,13 @@ def _prop_descriptions(self): cases the default is *hide past div*. ticklabelposition Determines where tick labels are drawn with respect to - the axis Please note that top or bottom has no effect - on x axes or when `ticklabelmode` is set to "period". - Similarly left or right has no effect on y axes or when - `ticklabelmode` is set to "period". Has no effect on - "multicategory" axes or when `tickson` is set to - "boundaries". When used on axes linked by `matches` or + the axis. Please note that top or bottom has no effect + on x axes or when `ticklabelmode` is set to "period" or + when `tickson` is set to "boundaries". Similarly, left + or right has no effect on y axes or when + `ticklabelmode` is set to "period" or when `tickson` is + set to "boundaries". Has no effect on "multicategory" + axes. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match. ticklabelshift @@ -2677,6 +2704,14 @@ def _prop_descriptions(self): on top of the grid lines. zerolinecolor Sets the line color of the zero line. + zerolinelayer + Sets the layer on which this zeroline is displayed. If + *above traces*, this zeroline is displayed above all + the subplot's traces If *below traces*, this zeroline + is displayed below all the subplot's traces, but above + the grid lines. Limitation: "zerolinelayer" currently + has no effect if the "zorder" property is set on any + trace. zerolinewidth Sets the width (in px) of the zero line. """ @@ -2776,6 +2811,7 @@ def __init__( visible=None, zeroline=None, zerolinecolor=None, + zerolinelayer=None, zerolinewidth=None, **kwargs, ): @@ -3028,7 +3064,7 @@ def __init__( layout.xaxis.rangebreaks rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -3195,12 +3231,13 @@ def __init__( cases the default is *hide past div*. ticklabelposition Determines where tick labels are drawn with respect to - the axis Please note that top or bottom has no effect - on x axes or when `ticklabelmode` is set to "period". - Similarly left or right has no effect on y axes or when - `ticklabelmode` is set to "period". Has no effect on - "multicategory" axes or when `tickson` is set to - "boundaries". When used on axes linked by `matches` or + the axis. Please note that top or bottom has no effect + on x axes or when `ticklabelmode` is set to "period" or + when `tickson` is set to "boundaries". Similarly, left + or right has no effect on y axes or when + `ticklabelmode` is set to "period" or when `tickson` is + set to "boundaries". Has no effect on "multicategory" + axes. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match. ticklabelshift @@ -3291,6 +3328,14 @@ def __init__( on top of the grid lines. zerolinecolor Sets the line color of the zero line. + zerolinelayer + Sets the layer on which this zeroline is displayed. If + *above traces*, this zeroline is displayed above all + the subplot's traces If *below traces*, this zeroline + is displayed below all the subplot's traces, but above + the grid lines. Limitation: "zerolinelayer" currently + has no effect if the "zorder" property is set on any + trace. zerolinewidth Sets the width (in px) of the zero line. @@ -3410,6 +3455,7 @@ def __init__( self._set_property("visible", arg, visible) self._set_property("zeroline", arg, zeroline) self._set_property("zerolinecolor", arg, zerolinecolor) + self._set_property("zerolinelayer", arg, zerolinelayer) self._set_property("zerolinewidth", arg, zerolinewidth) self._process_kwargs(**dict(arg, **kwargs)) self._skip_invalid = False diff --git a/plotly/graph_objs/layout/_yaxis.py b/plotly/graph_objs/layout/_yaxis.py index 95cf85f2836..d0b625bf646 100644 --- a/plotly/graph_objs/layout/_yaxis.py +++ b/plotly/graph_objs/layout/_yaxis.py @@ -101,6 +101,7 @@ class YAxis(_BaseLayoutHierarchyType): "visible", "zeroline", "zerolinecolor", + "zerolinelayer", "zerolinewidth", } @@ -115,8 +116,8 @@ def anchor(self): - One of the following enumeration values: ['free'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$', - '^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', + '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -802,8 +803,8 @@ def matches(self): The 'matches' property is an enumeration that may be specified as: - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$', - '^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', + '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -946,8 +947,8 @@ def overlaying(self): - One of the following enumeration values: ['free'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$', - '^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', + '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -1056,7 +1057,7 @@ def rangebreakdefaults(self, val): def rangemode(self): """ If "normal", the range is computed in relation to the extrema - of the input data. If "tozero", the range extends to 0, + of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -1105,8 +1106,8 @@ def scaleanchor(self): - One of the following enumeration values: [False] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$', - '^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', + '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -1723,12 +1724,13 @@ def ticklabeloverflow(self, val): @property def ticklabelposition(self): """ - Determines where tick labels are drawn with respect to the axis - Please note that top or bottom has no effect on x axes or when - `ticklabelmode` is set to "period". Similarly left or right has - no effect on y axes or when `ticklabelmode` is set to "period". - Has no effect on "multicategory" axes or when `tickson` is set - to "boundaries". When used on axes linked by `matches` or + Determines where tick labels are drawn with respect to the + axis. Please note that top or bottom has no effect on x axes or + when `ticklabelmode` is set to "period" or when `tickson` is + set to "boundaries". Similarly, left or right has no effect on + y axes or when `ticklabelmode` is set to "period" or when + `tickson` is set to "boundaries". Has no effect on + "multicategory" axes. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match. @@ -2160,6 +2162,30 @@ def zerolinecolor(self): def zerolinecolor(self, val): self["zerolinecolor"] = val + @property + def zerolinelayer(self): + """ + Sets the layer on which this zeroline is displayed. If *above + traces*, this zeroline is displayed above all the subplot's + traces If *below traces*, this zeroline is displayed below all + the subplot's traces, but above the grid lines. Limitation: + "zerolinelayer" currently has no effect if the "zorder" + property is set on any trace. + + The 'zerolinelayer' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['above traces', 'below traces'] + + Returns + ------- + Any + """ + return self["zerolinelayer"] + + @zerolinelayer.setter + def zerolinelayer(self, val): + self["zerolinelayer"] = val + @property def zerolinewidth(self): """ @@ -2429,7 +2455,7 @@ def _prop_descriptions(self): layout.yaxis.rangebreaks rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -2599,12 +2625,13 @@ def _prop_descriptions(self): cases the default is *hide past div*. ticklabelposition Determines where tick labels are drawn with respect to - the axis Please note that top or bottom has no effect - on x axes or when `ticklabelmode` is set to "period". - Similarly left or right has no effect on y axes or when - `ticklabelmode` is set to "period". Has no effect on - "multicategory" axes or when `tickson` is set to - "boundaries". When used on axes linked by `matches` or + the axis. Please note that top or bottom has no effect + on x axes or when `ticklabelmode` is set to "period" or + when `tickson` is set to "boundaries". Similarly, left + or right has no effect on y axes or when + `ticklabelmode` is set to "period" or when `tickson` is + set to "boundaries". Has no effect on "multicategory" + axes. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match. ticklabelshift @@ -2695,6 +2722,14 @@ def _prop_descriptions(self): on top of the grid lines. zerolinecolor Sets the line color of the zero line. + zerolinelayer + Sets the layer on which this zeroline is displayed. If + *above traces*, this zeroline is displayed above all + the subplot's traces If *below traces*, this zeroline + is displayed below all the subplot's traces, but above + the grid lines. Limitation: "zerolinelayer" currently + has no effect if the "zorder" property is set on any + trace. zerolinewidth Sets the width (in px) of the zero line. """ @@ -2794,6 +2829,7 @@ def __init__( visible=None, zeroline=None, zerolinecolor=None, + zerolinelayer=None, zerolinewidth=None, **kwargs, ): @@ -3053,7 +3089,7 @@ def __init__( layout.yaxis.rangebreaks rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -3223,12 +3259,13 @@ def __init__( cases the default is *hide past div*. ticklabelposition Determines where tick labels are drawn with respect to - the axis Please note that top or bottom has no effect - on x axes or when `ticklabelmode` is set to "period". - Similarly left or right has no effect on y axes or when - `ticklabelmode` is set to "period". Has no effect on - "multicategory" axes or when `tickson` is set to - "boundaries". When used on axes linked by `matches` or + the axis. Please note that top or bottom has no effect + on x axes or when `ticklabelmode` is set to "period" or + when `tickson` is set to "boundaries". Similarly, left + or right has no effect on y axes or when + `ticklabelmode` is set to "period" or when `tickson` is + set to "boundaries". Has no effect on "multicategory" + axes. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match. ticklabelshift @@ -3319,6 +3356,14 @@ def __init__( on top of the grid lines. zerolinecolor Sets the line color of the zero line. + zerolinelayer + Sets the layer on which this zeroline is displayed. If + *above traces*, this zeroline is displayed above all + the subplot's traces If *below traces*, this zeroline + is displayed below all the subplot's traces, but above + the grid lines. Limitation: "zerolinelayer" currently + has no effect if the "zorder" property is set on any + trace. zerolinewidth Sets the width (in px) of the zero line. @@ -3438,6 +3483,7 @@ def __init__( self._set_property("visible", arg, visible) self._set_property("zeroline", arg, zeroline) self._set_property("zerolinecolor", arg, zerolinecolor) + self._set_property("zerolinelayer", arg, zerolinelayer) self._set_property("zerolinewidth", arg, zerolinewidth) self._process_kwargs(**dict(arg, **kwargs)) self._skip_invalid = False diff --git a/plotly/graph_objs/layout/map/layer/_symbol.py b/plotly/graph_objs/layout/map/layer/_symbol.py index 58507ae4ede..5891fe4d7e9 100644 --- a/plotly/graph_objs/layout/map/layer/_symbol.py +++ b/plotly/graph_objs/layout/map/layer/_symbol.py @@ -14,7 +14,7 @@ class Symbol(_BaseLayoutHierarchyType): def icon(self): """ Sets the symbol icon image (map.layer.layout.icon-image). Full - list: https://www.map.com/maki-icons/ + list: https://www.mapbox.com/maki-icons/ The 'icon' property is a string and must be specified as: - A string @@ -142,7 +142,7 @@ def _prop_descriptions(self): return """\ icon Sets the symbol icon image (map.layer.layout.icon- - image). Full list: https://www.map.com/maki-icons/ + image). Full list: https://www.mapbox.com/maki-icons/ iconsize Sets the symbol icon size (map.layer.layout.icon-size). Has an effect only when `type` is set to "symbol". @@ -187,7 +187,7 @@ def __init__( :class:`plotly.graph_objs.layout.map.layer.Symbol` icon Sets the symbol icon image (map.layer.layout.icon- - image). Full list: https://www.map.com/maki-icons/ + image). Full list: https://www.mapbox.com/maki-icons/ iconsize Sets the symbol icon size (map.layer.layout.icon-size). Has an effect only when `type` is set to "symbol". diff --git a/plotly/graph_objs/layout/polar/_radialaxis.py b/plotly/graph_objs/layout/polar/_radialaxis.py index aa5bfd5b0b0..217d11b4fd1 100644 --- a/plotly/graph_objs/layout/polar/_radialaxis.py +++ b/plotly/graph_objs/layout/polar/_radialaxis.py @@ -661,7 +661,7 @@ def range(self, val): @property def rangemode(self): """ - If "tozero", the range extends to 0, regardless of the input + If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. If "normal", the range is computed in relation to the extrema of the input data (same behavior as for @@ -1466,7 +1466,7 @@ def _prop_descriptions(self): appears. Leaving either or both elements `null` impacts the default `autorange`. rangemode - If "tozero", the range extends to 0, regardless of the + If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. If "normal", the range is computed in relation to the extrema of the input data @@ -1835,7 +1835,7 @@ def __init__( appears. Leaving either or both elements `null` impacts the default `autorange`. rangemode - If "tozero", the range extends to 0, regardless of the + If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. If "normal", the range is computed in relation to the extrema of the input data diff --git a/plotly/graph_objs/layout/scene/_annotation.py b/plotly/graph_objs/layout/scene/_annotation.py index 341cb4b8916..ba367344d6c 100644 --- a/plotly/graph_objs/layout/scene/_annotation.py +++ b/plotly/graph_objs/layout/scene/_annotation.py @@ -568,9 +568,10 @@ def templateitemname(self, val): def text(self): """ Sets the text associated with this annotation. Plotly uses a - subset of HTML tags to do things like newline (
), bold - (), italics (), hyperlinks (). - Tags , , , , are also supported. + subset of HTML tags to do things like newline (`
`), bold + (``), italics (``), hyperlinks (``). Tags ``, ``, ``, ``, ``, + and `` are also supported. The 'text' property is a string and must be specified as: - A string @@ -916,9 +917,10 @@ def _prop_descriptions(self): text Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline - (
), bold (), italics (), hyperlinks - (). Tags , , , , - are also supported. + (`
`), bold (``), italics (``), + hyperlinks (``). Tags ``, + ``, ``, ``, ``, and `` are also + supported. textangle Sets the angle at which the `text` is drawn with respect to the horizontal. @@ -1125,9 +1127,10 @@ def __init__( text Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline - (
), bold (), italics (), hyperlinks - (). Tags , , , , - are also supported. + (`
`), bold (``), italics (``), + hyperlinks (``). Tags ``, + ``, ``, ``, ``, and `` are also + supported. textangle Sets the angle at which the `text` is drawn with respect to the horizontal. diff --git a/plotly/graph_objs/layout/scene/_xaxis.py b/plotly/graph_objs/layout/scene/_xaxis.py index 3158a2e8318..64e4b118bc7 100644 --- a/plotly/graph_objs/layout/scene/_xaxis.py +++ b/plotly/graph_objs/layout/scene/_xaxis.py @@ -616,7 +616,7 @@ def range(self, val): def rangemode(self): """ If "normal", the range is computed in relation to the extrema - of the input data. If "tozero", the range extends to 0, + of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -1519,7 +1519,7 @@ def _prop_descriptions(self): the default `autorange`. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -1886,7 +1886,7 @@ def __init__( the default `autorange`. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. diff --git a/plotly/graph_objs/layout/scene/_yaxis.py b/plotly/graph_objs/layout/scene/_yaxis.py index 852837d3984..6455e98adf7 100644 --- a/plotly/graph_objs/layout/scene/_yaxis.py +++ b/plotly/graph_objs/layout/scene/_yaxis.py @@ -616,7 +616,7 @@ def range(self, val): def rangemode(self): """ If "normal", the range is computed in relation to the extrema - of the input data. If "tozero", the range extends to 0, + of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -1519,7 +1519,7 @@ def _prop_descriptions(self): the default `autorange`. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -1886,7 +1886,7 @@ def __init__( the default `autorange`. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. diff --git a/plotly/graph_objs/layout/scene/_zaxis.py b/plotly/graph_objs/layout/scene/_zaxis.py index 81936c64854..9ac22491692 100644 --- a/plotly/graph_objs/layout/scene/_zaxis.py +++ b/plotly/graph_objs/layout/scene/_zaxis.py @@ -616,7 +616,7 @@ def range(self, val): def rangemode(self): """ If "normal", the range is computed in relation to the extrema - of the input data. If "tozero", the range extends to 0, + of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -1519,7 +1519,7 @@ def _prop_descriptions(self): the default `autorange`. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -1886,7 +1886,7 @@ def __init__( the default `autorange`. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. diff --git a/plotly/graph_objs/parcats/_line.py b/plotly/graph_objs/parcats/_line.py index 72b01bc9f06..da1e8e7de62 100644 --- a/plotly/graph_objs/parcats/_line.py +++ b/plotly/graph_objs/parcats/_line.py @@ -303,8 +303,8 @@ def hovertemplate(self): here applies when hovering over lines.Finally, the template string has access to variables `count` and `probability`. Anything contained in tag `` is displayed in the - secondary box, for example "{fullData.name}". To - hide the secondary box completely, use an empty tag + secondary box, for example `%{fullData.name}`. + To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -480,7 +480,7 @@ def _prop_descriptions(self): over lines.Finally, the template string has access to variables `count` and `probability`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. reversescale @@ -620,7 +620,7 @@ def __init__( over lines.Finally, the template string has access to variables `count` and `probability`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. reversescale diff --git a/plotly/graph_objs/parcoords/_dimension.py b/plotly/graph_objs/parcoords/_dimension.py index 0c28911e144..5c55be2f0dc 100644 --- a/plotly/graph_objs/parcoords/_dimension.py +++ b/plotly/graph_objs/parcoords/_dimension.py @@ -41,8 +41,8 @@ def constraintrange(self): (1) The 'constraintrange[1]' property accepts values of any type * a 2D list where: - (0) The 'constraintrange[i][0]' property accepts values of any type - (1) The 'constraintrange[i][1]' property accepts values of any type + (0) The 'constraintrange[i]\[0]' property accepts values of any type + (1) The 'constraintrange[i]\[1]' property accepts values of any type Returns ------- diff --git a/plotly/graph_objs/pie/marker/_pattern.py b/plotly/graph_objs/pie/marker/_pattern.py index db8b13e3a09..1a273043e05 100644 --- a/plotly/graph_objs/pie/marker/_pattern.py +++ b/plotly/graph_objs/pie/marker/_pattern.py @@ -15,6 +15,8 @@ class Pattern(_BaseTraceHierarchyType): "fgcolorsrc", "fgopacity", "fillmode", + "path", + "pathsrc", "shape", "shapesrc", "size", @@ -150,6 +152,46 @@ def fillmode(self): def fillmode(self, val): self["fillmode"] = val + @property + def path(self): + """ + Sets a custom path for pattern fill. Use with no `shape` or + `solidity`, provide an SVG path string for the regions of the + square from (0,0) to (`size`,`size`) to color. + + The 'path' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["path"] + + @path.setter + def path(self, val): + self["path"] = val + + @property + def pathsrc(self): + """ + Sets the source reference on Chart Studio Cloud for `path`. + + The 'pathsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["pathsrc"] + + @pathsrc.setter + def pathsrc(self, val): + self["pathsrc"] = val + @property def shape(self): """ @@ -294,6 +336,14 @@ def _prop_descriptions(self): fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -327,6 +377,8 @@ def __init__( fgcolorsrc=None, fgopacity=None, fillmode=None, + path=None, + pathsrc=None, shape=None, shapesrc=None, size=None, @@ -370,6 +422,14 @@ def __init__( fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -423,6 +483,8 @@ def __init__( self._set_property("fgcolorsrc", arg, fgcolorsrc) self._set_property("fgopacity", arg, fgopacity) self._set_property("fillmode", arg, fillmode) + self._set_property("path", arg, path) + self._set_property("pathsrc", arg, pathsrc) self._set_property("shape", arg, shape) self._set_property("shapesrc", arg, shapesrc) self._set_property("size", arg, size) diff --git a/plotly/graph_objs/sankey/_link.py b/plotly/graph_objs/sankey/_link.py index d436fd81cfe..3ecea7c6d63 100644 --- a/plotly/graph_objs/sankey/_link.py +++ b/plotly/graph_objs/sankey/_link.py @@ -287,7 +287,7 @@ def hovertemplate(self): `source` and `target` are node objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -562,7 +562,7 @@ def _prop_descriptions(self): node objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -702,7 +702,7 @@ def __init__( node objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc diff --git a/plotly/graph_objs/sankey/_node.py b/plotly/graph_objs/sankey/_node.py index 1e05e7a4829..80942eba028 100644 --- a/plotly/graph_objs/sankey/_node.py +++ b/plotly/graph_objs/sankey/_node.py @@ -142,7 +142,7 @@ def groups(self): The 'groups' property is an info array that may be specified as: * a 2D list where: - The 'groups[i][j]' property is a number and may be specified as: + The 'groups[i]\[j]' property is a number and may be specified as: - An int or float Returns @@ -223,7 +223,7 @@ def hovertemplate(self): objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary box + `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -485,8 +485,9 @@ def _prop_descriptions(self): template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -607,8 +608,9 @@ def __init__( template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/scatter/_fillpattern.py b/plotly/graph_objs/scatter/_fillpattern.py index f333974bca2..db963840855 100644 --- a/plotly/graph_objs/scatter/_fillpattern.py +++ b/plotly/graph_objs/scatter/_fillpattern.py @@ -15,6 +15,8 @@ class Fillpattern(_BaseTraceHierarchyType): "fgcolorsrc", "fgopacity", "fillmode", + "path", + "pathsrc", "shape", "shapesrc", "size", @@ -150,6 +152,46 @@ def fillmode(self): def fillmode(self, val): self["fillmode"] = val + @property + def path(self): + """ + Sets a custom path for pattern fill. Use with no `shape` or + `solidity`, provide an SVG path string for the regions of the + square from (0,0) to (`size`,`size`) to color. + + The 'path' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["path"] + + @path.setter + def path(self, val): + self["path"] = val + + @property + def pathsrc(self): + """ + Sets the source reference on Chart Studio Cloud for `path`. + + The 'pathsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["pathsrc"] + + @pathsrc.setter + def pathsrc(self, val): + self["pathsrc"] = val + @property def shape(self): """ @@ -294,6 +336,14 @@ def _prop_descriptions(self): fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -327,6 +377,8 @@ def __init__( fgcolorsrc=None, fgopacity=None, fillmode=None, + path=None, + pathsrc=None, shape=None, shapesrc=None, size=None, @@ -370,6 +422,14 @@ def __init__( fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -423,6 +483,8 @@ def __init__( self._set_property("fgcolorsrc", arg, fgcolorsrc) self._set_property("fgopacity", arg, fgopacity) self._set_property("fillmode", arg, fillmode) + self._set_property("path", arg, path) + self._set_property("pathsrc", arg, pathsrc) self._set_property("shape", arg, shape) self._set_property("shapesrc", arg, shapesrc) self._set_property("size", arg, size) diff --git a/plotly/graph_objs/scattermap/_marker.py b/plotly/graph_objs/scattermap/_marker.py index a5612a3fb67..94795ed505b 100644 --- a/plotly/graph_objs/scattermap/_marker.py +++ b/plotly/graph_objs/scattermap/_marker.py @@ -525,7 +525,7 @@ def sizesrc(self, val): @property def symbol(self): """ - Sets the marker symbol. Full list: https://www.map.com/maki- + Sets the marker symbol. Full list: https://www.mapbox.com/maki- icons/ Note that the array `marker.color` and `marker.size` are only available for "circle" symbols. @@ -676,7 +676,7 @@ def _prop_descriptions(self): `size`. symbol Sets the marker symbol. Full list: - https://www.map.com/maki-icons/ Note that the array + https://www.mapbox.com/maki-icons/ Note that the array `marker.color` and `marker.size` are only available for "circle" symbols. symbolsrc @@ -833,7 +833,7 @@ def __init__( `size`. symbol Sets the marker symbol. Full list: - https://www.map.com/maki-icons/ Note that the array + https://www.mapbox.com/maki-icons/ Note that the array `marker.color` and `marker.size` are only available for "circle" symbols. symbolsrc diff --git a/plotly/graph_objs/sunburst/marker/_pattern.py b/plotly/graph_objs/sunburst/marker/_pattern.py index 16346c9f2a6..1db7bb09044 100644 --- a/plotly/graph_objs/sunburst/marker/_pattern.py +++ b/plotly/graph_objs/sunburst/marker/_pattern.py @@ -15,6 +15,8 @@ class Pattern(_BaseTraceHierarchyType): "fgcolorsrc", "fgopacity", "fillmode", + "path", + "pathsrc", "shape", "shapesrc", "size", @@ -150,6 +152,46 @@ def fillmode(self): def fillmode(self, val): self["fillmode"] = val + @property + def path(self): + """ + Sets a custom path for pattern fill. Use with no `shape` or + `solidity`, provide an SVG path string for the regions of the + square from (0,0) to (`size`,`size`) to color. + + The 'path' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["path"] + + @path.setter + def path(self, val): + self["path"] = val + + @property + def pathsrc(self): + """ + Sets the source reference on Chart Studio Cloud for `path`. + + The 'pathsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["pathsrc"] + + @pathsrc.setter + def pathsrc(self, val): + self["pathsrc"] = val + @property def shape(self): """ @@ -294,6 +336,14 @@ def _prop_descriptions(self): fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -327,6 +377,8 @@ def __init__( fgcolorsrc=None, fgopacity=None, fillmode=None, + path=None, + pathsrc=None, shape=None, shapesrc=None, size=None, @@ -370,6 +422,14 @@ def __init__( fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -423,6 +483,8 @@ def __init__( self._set_property("fgcolorsrc", arg, fgcolorsrc) self._set_property("fgopacity", arg, fgopacity) self._set_property("fillmode", arg, fillmode) + self._set_property("path", arg, path) + self._set_property("pathsrc", arg, pathsrc) self._set_property("shape", arg, shape) self._set_property("shapesrc", arg, shapesrc) self._set_property("size", arg, size) diff --git a/plotly/graph_objs/table/_cells.py b/plotly/graph_objs/table/_cells.py index 083afdd03ca..36b0cc0a299 100644 --- a/plotly/graph_objs/table/_cells.py +++ b/plotly/graph_objs/table/_cells.py @@ -259,7 +259,7 @@ def suffixsrc(self, val): @property def values(self): """ - Cell values. `values[m][n]` represents the value of the `n`th + Cell values. `values[m]\\[n]` represents the value of the `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string. @@ -337,11 +337,11 @@ def _prop_descriptions(self): Sets the source reference on Chart Studio Cloud for `suffix`. values - Cell values. `values[m][n]` represents the value of the - `n`th point in column `m`, therefore the `values[m]` - vector length for all columns must be the same (longer - vectors will be truncated). Each value must be a finite - number or a string. + Cell values. `values[m]\\[n]` represents the value of + the `n`th point in column `m`, therefore the + `values[m]` vector length for all columns must be the + same (longer vectors will be truncated). Each value + must be a finite number or a string. valuessrc Sets the source reference on Chart Studio Cloud for `values`. @@ -413,11 +413,11 @@ def __init__( Sets the source reference on Chart Studio Cloud for `suffix`. values - Cell values. `values[m][n]` represents the value of the - `n`th point in column `m`, therefore the `values[m]` - vector length for all columns must be the same (longer - vectors will be truncated). Each value must be a finite - number or a string. + Cell values. `values[m]\\[n]` represents the value of + the `n`th point in column `m`, therefore the + `values[m]` vector length for all columns must be the + same (longer vectors will be truncated). Each value + must be a finite number or a string. valuessrc Sets the source reference on Chart Studio Cloud for `values`. diff --git a/plotly/graph_objs/table/_header.py b/plotly/graph_objs/table/_header.py index 5a4f6f6bac3..245b13d7bc7 100644 --- a/plotly/graph_objs/table/_header.py +++ b/plotly/graph_objs/table/_header.py @@ -259,8 +259,8 @@ def suffixsrc(self, val): @property def values(self): """ - Header cell values. `values[m][n]` represents the value of the - `n`th point in column `m`, therefore the `values[m]` vector + Header cell values. `values[m]\\[n]` represents the value of + the `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string. @@ -337,8 +337,8 @@ def _prop_descriptions(self): Sets the source reference on Chart Studio Cloud for `suffix`. values - Header cell values. `values[m][n]` represents the value - of the `n`th point in column `m`, therefore the + Header cell values. `values[m]\\[n]` represents the + value of the `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string. @@ -413,8 +413,8 @@ def __init__( Sets the source reference on Chart Studio Cloud for `suffix`. values - Header cell values. `values[m][n]` represents the value - of the `n`th point in column `m`, therefore the + Header cell values. `values[m]\\[n]` represents the + value of the `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string. diff --git a/plotly/graph_objs/treemap/marker/_pattern.py b/plotly/graph_objs/treemap/marker/_pattern.py index faa03c41462..57d4fc4883c 100644 --- a/plotly/graph_objs/treemap/marker/_pattern.py +++ b/plotly/graph_objs/treemap/marker/_pattern.py @@ -15,6 +15,8 @@ class Pattern(_BaseTraceHierarchyType): "fgcolorsrc", "fgopacity", "fillmode", + "path", + "pathsrc", "shape", "shapesrc", "size", @@ -150,6 +152,46 @@ def fillmode(self): def fillmode(self, val): self["fillmode"] = val + @property + def path(self): + """ + Sets a custom path for pattern fill. Use with no `shape` or + `solidity`, provide an SVG path string for the regions of the + square from (0,0) to (`size`,`size`) to color. + + The 'path' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["path"] + + @path.setter + def path(self, val): + self["path"] = val + + @property + def pathsrc(self): + """ + Sets the source reference on Chart Studio Cloud for `path`. + + The 'pathsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["pathsrc"] + + @pathsrc.setter + def pathsrc(self, val): + self["pathsrc"] = val + @property def shape(self): """ @@ -294,6 +336,14 @@ def _prop_descriptions(self): fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -327,6 +377,8 @@ def __init__( fgcolorsrc=None, fgopacity=None, fillmode=None, + path=None, + pathsrc=None, shape=None, shapesrc=None, size=None, @@ -370,6 +422,14 @@ def __init__( fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -423,6 +483,8 @@ def __init__( self._set_property("fgcolorsrc", arg, fgcolorsrc) self._set_property("fgopacity", arg, fgopacity) self._set_property("fillmode", arg, fillmode) + self._set_property("path", arg, path) + self._set_property("pathsrc", arg, pathsrc) self._set_property("shape", arg, shape) self._set_property("shapesrc", arg, shapesrc) self._set_property("size", arg, size) diff --git a/plotly/validators/_validators.json b/plotly/validators/_validators.json index ab1114e69d6..e2a73a8daac 100644 --- a/plotly/validators/_validators.json +++ b/plotly/validators/_validators.json @@ -25,6 +25,18 @@ }, "superclass": "NumberValidator" }, + "layout.yaxis.zerolinelayer": { + "params": { + "plotly_name": "zerolinelayer", + "parent_name": "layout.yaxis", + "edit_type": "plot", + "values": [ + "above traces", + "below traces" + ] + }, + "superclass": "EnumeratedValidator" + }, "layout.yaxis.zerolinecolor": { "params": { "plotly_name": "zerolinecolor", @@ -1635,6 +1647,18 @@ }, "superclass": "NumberValidator" }, + "layout.xaxis.zerolinelayer": { + "params": { + "plotly_name": "zerolinelayer", + "parent_name": "layout.xaxis", + "edit_type": "plot", + "values": [ + "above traces", + "below traces" + ] + }, + "superclass": "EnumeratedValidator" + }, "layout.xaxis.zerolinecolor": { "params": { "plotly_name": "zerolinecolor", @@ -17491,6 +17515,15 @@ }, "superclass": "EnumeratedValidator" }, + "layout.legend.maxheight": { + "params": { + "plotly_name": "maxheight", + "parent_name": "layout.legend", + "edit_type": "legend", + "min": 0 + }, + "superclass": "NumberValidator" + }, "layout.legend.itemwidth": { "params": { "plotly_name": "itemwidth", @@ -28108,6 +28141,23 @@ }, "superclass": "EnumeratedValidator" }, + "treemap.marker.pattern.pathsrc": { + "params": { + "plotly_name": "pathsrc", + "parent_name": "treemap.marker.pattern", + "edit_type": "none" + }, + "superclass": "SrcValidator" + }, + "treemap.marker.pattern.path": { + "params": { + "plotly_name": "path", + "parent_name": "treemap.marker.pattern", + "array_ok": true, + "edit_type": "style" + }, + "superclass": "StringValidator" + }, "treemap.marker.pattern.fillmode": { "params": { "plotly_name": "fillmode", @@ -34417,6 +34467,23 @@ }, "superclass": "EnumeratedValidator" }, + "sunburst.marker.pattern.pathsrc": { + "params": { + "plotly_name": "pathsrc", + "parent_name": "sunburst.marker.pattern", + "edit_type": "none" + }, + "superclass": "SrcValidator" + }, + "sunburst.marker.pattern.path": { + "params": { + "plotly_name": "path", + "parent_name": "sunburst.marker.pattern", + "array_ok": true, + "edit_type": "style" + }, + "superclass": "StringValidator" + }, "sunburst.marker.pattern.fillmode": { "params": { "plotly_name": "fillmode", @@ -72520,6 +72587,23 @@ }, "superclass": "EnumeratedValidator" }, + "scatter.fillpattern.pathsrc": { + "params": { + "plotly_name": "pathsrc", + "parent_name": "scatter.fillpattern", + "edit_type": "none" + }, + "superclass": "SrcValidator" + }, + "scatter.fillpattern.path": { + "params": { + "plotly_name": "path", + "parent_name": "scatter.fillpattern", + "array_ok": true, + "edit_type": "style" + }, + "superclass": "StringValidator" + }, "scatter.fillpattern.fillmode": { "params": { "plotly_name": "fillmode", @@ -75796,6 +75880,23 @@ }, "superclass": "EnumeratedValidator" }, + "pie.marker.pattern.pathsrc": { + "params": { + "plotly_name": "pathsrc", + "parent_name": "pie.marker.pattern", + "edit_type": "none" + }, + "superclass": "SrcValidator" + }, + "pie.marker.pattern.path": { + "params": { + "plotly_name": "path", + "parent_name": "pie.marker.pattern", + "array_ok": true, + "edit_type": "style" + }, + "superclass": "StringValidator" + }, "pie.marker.pattern.fillmode": { "params": { "plotly_name": "fillmode", @@ -88904,6 +89005,23 @@ }, "superclass": "EnumeratedValidator" }, + "icicle.marker.pattern.pathsrc": { + "params": { + "plotly_name": "pathsrc", + "parent_name": "icicle.marker.pattern", + "edit_type": "none" + }, + "superclass": "SrcValidator" + }, + "icicle.marker.pattern.path": { + "params": { + "plotly_name": "path", + "parent_name": "icicle.marker.pattern", + "array_ok": true, + "edit_type": "style" + }, + "superclass": "StringValidator" + }, "icicle.marker.pattern.fillmode": { "params": { "plotly_name": "fillmode", @@ -95869,6 +95987,23 @@ }, "superclass": "EnumeratedValidator" }, + "histogram.marker.pattern.pathsrc": { + "params": { + "plotly_name": "pathsrc", + "parent_name": "histogram.marker.pattern", + "edit_type": "none" + }, + "superclass": "SrcValidator" + }, + "histogram.marker.pattern.path": { + "params": { + "plotly_name": "path", + "parent_name": "histogram.marker.pattern", + "array_ok": true, + "edit_type": "style" + }, + "superclass": "StringValidator" + }, "histogram.marker.pattern.fillmode": { "params": { "plotly_name": "fillmode", @@ -100777,6 +100912,23 @@ }, "superclass": "EnumeratedValidator" }, + "funnelarea.marker.pattern.pathsrc": { + "params": { + "plotly_name": "pathsrc", + "parent_name": "funnelarea.marker.pattern", + "edit_type": "none" + }, + "superclass": "SrcValidator" + }, + "funnelarea.marker.pattern.path": { + "params": { + "plotly_name": "path", + "parent_name": "funnelarea.marker.pattern", + "array_ok": true, + "edit_type": "style" + }, + "superclass": "StringValidator" + }, "funnelarea.marker.pattern.fillmode": { "params": { "plotly_name": "fillmode", @@ -124475,6 +124627,23 @@ }, "superclass": "EnumeratedValidator" }, + "barpolar.marker.pattern.pathsrc": { + "params": { + "plotly_name": "pathsrc", + "parent_name": "barpolar.marker.pattern", + "edit_type": "none" + }, + "superclass": "SrcValidator" + }, + "barpolar.marker.pattern.path": { + "params": { + "plotly_name": "path", + "parent_name": "barpolar.marker.pattern", + "array_ok": true, + "edit_type": "style" + }, + "superclass": "StringValidator" + }, "barpolar.marker.pattern.fillmode": { "params": { "plotly_name": "fillmode", @@ -127176,6 +127345,23 @@ }, "superclass": "EnumeratedValidator" }, + "bar.marker.pattern.pathsrc": { + "params": { + "plotly_name": "pathsrc", + "parent_name": "bar.marker.pattern", + "edit_type": "none" + }, + "superclass": "SrcValidator" + }, + "bar.marker.pattern.path": { + "params": { + "plotly_name": "path", + "parent_name": "bar.marker.pattern", + "array_ok": true, + "edit_type": "style" + }, + "superclass": "StringValidator" + }, "bar.marker.pattern.fillmode": { "params": { "plotly_name": "fillmode", diff --git a/resources/plot-schema.json b/resources/plot-schema.json index 5648e294fe0..1148cf2e4b7 100644 --- a/resources/plot-schema.json +++ b/resources/plot-schema.json @@ -16699,7 +16699,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -18898,7 +18898,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -20490,7 +20490,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -25053,7 +25053,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -26334,7 +26334,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -27611,7 +27611,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -28921,7 +28921,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `norm` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `norm` Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -30488,7 +30488,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -33305,7 +33305,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -34520,7 +34520,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -35185,7 +35185,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `percentInitial`, `percentPrevious` and `percentTotal`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `percentInitial`, `percentPrevious` and `percentTotal`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -37213,7 +37213,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `label`, `color`, `value`, `text` and `percent`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `label`, `color`, `value`, `text` and `percent`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -39050,7 +39050,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -40205,7 +40205,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `binNumber` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `binNumber` Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -42846,7 +42846,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -44536,7 +44536,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -45462,7 +45462,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -47548,7 +47548,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `z`, `color` and `colormodel`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `z`, `color` and `colormodel`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -50074,7 +50074,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -51615,7 +51615,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -53058,7 +53058,7 @@ ] }, "hovertemplate": { - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. This value here applies when hovering over dimensions. Note that `*categorycount`, *colorcount* and *bandcolorcount* are only available when `hoveron` contains the *color* flagFinally, the template string has access to variables `count`, `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. This value here applies when hovering over dimensions. Note that `*categorycount`, *colorcount* and *bandcolorcount* are only available when `hoveron` contains the *color* flagFinally, the template string has access to variables `count`, `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "plot", "valType": "string" @@ -53932,7 +53932,7 @@ }, "editType": "calc", "hovertemplate": { - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. This value here applies when hovering over lines.Finally, the template string has access to variables `count` and `probability`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. This value here applies when hovering over lines.Finally, the template string has access to variables `count` and `probability`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "plot", "valType": "string" @@ -55898,7 +55898,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `label`, `color`, `value`, `percent` and `text`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `label`, `color`, `value`, `percent` and `text`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -57762,7 +57762,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Variables `source` and `target` are node objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Variables `source` and `target` are node objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -58127,7 +58127,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Variables `sourceLinks` and `targetLinks` are arrays of link objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Variables `sourceLinks` and `targetLinks` are arrays of link objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -59011,7 +59011,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -61740,7 +61740,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -64193,7 +64193,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -66468,7 +66468,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -68910,7 +68910,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -71233,7 +71233,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -72770,7 +72770,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -74261,7 +74261,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -76562,7 +76562,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -78715,7 +78715,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -81024,7 +81024,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -83325,7 +83325,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -85921,7 +85921,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `tubex`, `tubey`, `tubez`, `tubeu`, `tubev`, `tubew`, `norm` and `divergence`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `tubex`, `tubey`, `tubez`, `tubeu`, `tubev`, `tubew`, `norm` and `divergence`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -86732,7 +86732,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -89531,7 +89531,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -91362,7 +91362,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -93537,7 +93537,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -95637,7 +95637,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -96588,7 +96588,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `initial`, `delta` and `final`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `initial`, `delta` and `final`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" From 9525f6ac44d3d00eca7550ed7b0916be9e55ceaa Mon Sep 17 00:00:00 2001 From: Greg Wilson Date: Wed, 23 Jul 2025 15:52:14 -0400 Subject: [PATCH 07/16] feat: converting doc/python/*.md using bin/run_markdown.py - Add `bin/run_markdown.py` (with help from Claude). - Runs Python chunks embedded in Markdown, writing result as Markdown. - Has option to embed interactive figures as well as generate PNG. - Modify `Makefile` to run the script on selected files for testing purposes. - Commented-out target runs on all. To do: - [ ] Figure out why `bin/run_markdown.py` fails with "too many open files" for large numbers of input files. - [ ] Modify `Makefile` to allow select re-running as well as batch runs. - [ ] Modify `bin/run_markdown.py` to use a single Kaleido sub-process to speed up image generation. --- .gitignore | 1 + Makefile | 8 + bin/codegen/datatypes.py | 4 +- bin/codegen/utils.py | 4 +- bin/run_markdown.py | 246 ++++++++++++++++++ notes.txt | 36 +++ plotly/graph_objs/_figure.py | 2 +- plotly/graph_objs/_figurewidget.py | 2 +- plotly/graph_objs/_image.py | 6 +- plotly/graph_objs/contour/_contours.py | 30 +-- plotly/graph_objs/contourcarpet/_contours.py | 30 +-- .../histogram2dcontour/_contours.py | 30 +-- plotly/graph_objs/layout/_annotation.py | 8 +- plotly/graph_objs/layout/_grid.py | 8 +- plotly/graph_objs/layout/_image.py | 4 +- plotly/graph_objs/layout/_selection.py | 4 +- plotly/graph_objs/layout/_shape.py | 4 +- plotly/graph_objs/layout/_xaxis.py | 16 +- plotly/graph_objs/layout/_yaxis.py | 16 +- plotly/graph_objs/parcoords/_dimension.py | 4 +- plotly/graph_objs/sankey/_node.py | 2 +- plotly/graph_objs/table/_cells.py | 22 +- plotly/graph_objs/table/_header.py | 12 +- 23 files changed, 392 insertions(+), 107 deletions(-) create mode 100644 bin/run_markdown.py create mode 100644 notes.txt diff --git a/.gitignore b/.gitignore index 063be791b13..b091fbc48e0 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ doc/python/raw.githubusercontent.com/ docs/ docs_tmp/ +pages/examples/ # Don't ignore dataset files !*.csv.gz diff --git a/Makefile b/Makefile index 63d26ae08ba..2313542cca5 100644 --- a/Makefile +++ b/Makefile @@ -3,6 +3,8 @@ RUN = uv run PACKAGE_DIRS = _plotly_utils plotly CODE_DIRS = ${PACKAGE_DIRS} scripts +EXAMPLE_SRC = doc/python/cone-plot.md doc/python/strip-charts.md +# EXAMPLE_SRC = $(wildcard doc/python/*.md) ## commands: show available commands commands: @@ -21,6 +23,10 @@ docs-lint: docs-tmp: MKDOCS_TEMP_DIR=./docs_tmp ${RUN} mkdocs build +## examples: generate Markdown from doc/python +examples: + ${RUN} bin/run_markdown.py --outdir pages/examples --inline --verbose ${EXAMPLE_SRC} + ## format: reformat code format: ${RUN} ruff format ${CODE_DIRS} @@ -52,6 +58,8 @@ clean: @rm -rf .pytest_cache @rm -rf .ruff_cache @rm -rf dist + @rm -rf docs + @rm -rf pages/examples ## sync: update Python packages sync: diff --git a/bin/codegen/datatypes.py b/bin/codegen/datatypes.py index d29e4f715a3..acabac95da3 100644 --- a/bin/codegen/datatypes.py +++ b/bin/codegen/datatypes.py @@ -218,8 +218,8 @@ def _subplot_re_match(self, prop): else: property_docstring = property_description - # Fix `][`. - property_docstring = property_docstring.replace("][", "]\\[") + # FIXME: replace '][' with ']\[' to avoid confusion with Markdown reference links + # property_docstring = property_docstring.replace("][", "]\\[") # Write get property buffer.write( diff --git a/bin/codegen/utils.py b/bin/codegen/utils.py index 2cc4e018811..c002574ada7 100644 --- a/bin/codegen/utils.py +++ b/bin/codegen/utils.py @@ -163,8 +163,8 @@ def format_description(desc): # replace {2D arrays} with 2D lists desc = desc.replace("{2D arrays}", "2D lists") - # replace '][' with ']\[' to avoid confusion with Markdown reference links - desc = desc.replace("][", r"]\\[") + # FIXME: replace '][' with ']\[' to avoid confusion with Markdown reference links + # desc = desc.replace("][", r"]\\[") return desc diff --git a/bin/run_markdown.py b/bin/run_markdown.py new file mode 100644 index 00000000000..6f29ee2fdff --- /dev/null +++ b/bin/run_markdown.py @@ -0,0 +1,246 @@ +#!/usr/bin/env python3 +""" +Process Markdown files with embedded Python code blocks, saving +the output and images. +""" + +import argparse +from contextlib import redirect_stdout, redirect_stderr +import io +from pathlib import Path +import plotly.graph_objects as go +import sys +import traceback + + +def main(): + args = _parse_args() + for filename in args.input: + _do_file(args, Path(filename)) + + +def _do_file(args, input_file): + """Process a single file.""" + + # Validate input file + if not input_file.exists(): + print(f"Error: '{input_file}' not found", file=sys.stderr) + sys.exit(1) + + # Determine output file path etc. + stem = input_file.stem + output_file = args.outdir / f"{input_file.stem}{input_file.suffix}" + if input_file.resolve() == output_file.resolve(): + print(f"Error: output would overwrite input '{input_file}'", file=sys.stderr) + sys.exit(1) + + # Read input + try: + with open(input_file, "r", encoding="utf-8") as f: + content = f.read() + except Exception as e: + print(f"Error reading input file: {e}", file=sys.stderr) + sys.exit(1) + + # Parse markdown and extract code blocks + _report(args.verbose, f"Processing {input_file}...") + code_blocks = _parse_md(content) + _report(args.verbose, f"- Found {len(code_blocks)} code blocks") + + # Execute code blocks and collect results + execution_results = [] + figure_counter = 0 + for i, block in enumerate(code_blocks): + _report(args.verbose, f"- Executing block {i + 1}/{len(code_blocks)}") + figure_counter, result = _run_code(block["code"], args.outdir, stem, figure_counter) + execution_results.append(result) + _report(result["error"], f" - Warning: block {i + 1} had an error") + _report(result["images"], f" - Generated {len(result['images'])} image(s)") + + # Generate and save output + content = _generate_markdown(args, content, code_blocks, execution_results, args.outdir) + try: + with open(output_file, "w", encoding="utf-8") as f: + f.write(content) + _report(args.verbose, f"- Output written to {output_file}") + _report(any(result["images"] for result in execution_results), f"- Images saved to {args.outdir}") + except Exception as e: + print(f"Error writing output file: {e}", file=sys.stderr) + sys.exit(1) + + +def _capture_plotly_show(fig, counter, result, output_dir, stem): + """Saves figures instead of displaying them.""" + # Save PNG + png_filename = f"{stem}_{counter}.png" + png_path = output_dir / png_filename + fig.write_image(png_path, width=800, height=600) + result["images"].append(png_filename) + + # Save HTML and get the content for embedding + html_filename = f"{stem}_{counter}.html" + html_path = output_dir / html_filename + fig.write_html(html_path, include_plotlyjs="cdn") + html_content = fig.to_html(include_plotlyjs="cdn", div_id=f"plotly-div-{counter}", full_html=False) + result["html_files"].append(html_filename) + result.setdefault("html_content", []).append(html_content) + + +def _generate_markdown(args, content, code_blocks, execution_results, output_dir): + """Generate the output markdown with embedded results.""" + lines = content.split("\n") + + # Sort code blocks by start line in reverse order for safe insertion + sorted_blocks = sorted( + enumerate(code_blocks), key=lambda x: x[1]["start_line"], reverse=True + ) + + # Process each code block and insert results + for block_idx, block in sorted_blocks: + result = execution_results[block_idx] + insert_lines = [] + + # Add output if there's stdout + if result["stdout"].strip(): + insert_lines.append("") + insert_lines.append("**Output:**") + insert_lines.append("```") + insert_lines.extend(result["stdout"].rstrip().split("\n")) + insert_lines.append("```") + + # Add error if there was one + if result["error"]: + insert_lines.append("") + insert_lines.append("**Error:**") + insert_lines.append("```") + insert_lines.extend(result["error"].rstrip().split("\n")) + insert_lines.append("```") + + # Add stderr if there's content + if result["stderr"].strip(): + insert_lines.append("") + insert_lines.append("**Warnings/Messages:**") + insert_lines.append("```") + insert_lines.extend(result["stderr"].rstrip().split("\n")) + insert_lines.append("```") + + # Add images + for image in result["images"]: + insert_lines.append("") + insert_lines.append(f"![Generated Plot](./{image})") + + # Embed HTML content for plotly figures + if args.inline: + for html_content in result.get("html_content", []): + insert_lines.append("") + insert_lines.append("**Interactive Plot:**") + insert_lines.append("") + insert_lines.extend(html_content.split("\n")) + + # Insert the results after the code block + if insert_lines: + # Insert after the closing ``` of the code block + insertion_point = block["end_line"] + 1 + lines[insertion_point:insertion_point] = insert_lines + + return "\n".join(lines) + + +def _parse_args(): + """Parse command-line arguments.""" + parser = argparse.ArgumentParser(description="Process Markdown files with code blocks") + parser.add_argument("input", nargs="+", help="Input .md file") + parser.add_argument("--inline", action="store_true", help="Inline HTML in .md") + parser.add_argument("--outdir", type=Path, help="Output directory") + parser.add_argument("--verbose", action="store_true", help="Report progress") + return parser.parse_args() + + +def _parse_md(content): + """Parse Markdown and extract Python code blocks.""" + lines = content.split("\n") + blocks = [] + current_block = None + in_code_block = False + + for i, line in enumerate(lines): + # Start of Python code block + if line.strip().startswith("```python"): + in_code_block = True + current_block = { + "start_line": i, + "end_line": None, + "code": [], + "type": "python", + } + + # End of code block + elif line.strip() == "```" and in_code_block: + in_code_block = False + current_block["end_line"] = i + current_block["code"] = "\n".join(current_block["code"]) + blocks.append(current_block) + current_block = None + + # Line inside code block + elif in_code_block: + current_block["code"].append(line) + + return blocks + + +def _report(condition, message): + """Report if condition is true.""" + if condition: + print(message, file=sys.stderr) + + +def _run_code(code, output_dir, stem, figure_counter): + """Execute code capturing output and generated files.""" + # Capture stdout and stderr + stdout_buffer = io.StringIO() + stderr_buffer = io.StringIO() + + # Track files created during execution + if not output_dir.exists(): + output_dir.mkdir(parents=True, exist_ok=True) + + files_before = set(f.name for f in output_dir.iterdir()) + result = {"stdout": "", "stderr": "", "error": None, "images": [], "html_files": []} + try: + + # Create a namespace for code execution + exec_globals = { + "__name__": "__main__", + "__file__": "", + } + + # Execute the code with output capture + with redirect_stdout(stdout_buffer), redirect_stderr(stderr_buffer): + # Try to import plotly and patch the show method + def patched_show(self, *args, **kwargs): + nonlocal figure_counter + figure_counter += 1 + _capture_plotly_show(self, figure_counter, result, output_dir, stem) + original_show = go.Figure.show + go.Figure.show = patched_show + exec(code, exec_globals) + go.Figure.show = original_show + + except Exception as e: + result["error"] = f"Error executing code: {str(e)}\n{traceback.format_exc()}" + + result["stdout"] = stdout_buffer.getvalue() + result["stderr"] = stderr_buffer.getvalue() + + # Check for any additional files created + files_after = set(f.name for f in output_dir.iterdir()) + for f in (files_after - files_before): + if f not in result["images"] and f.lower().endswith(".png"): + result["images"].append(f) + + return figure_counter, result + + +if __name__ == "__main__": + main() diff --git a/notes.txt b/notes.txt new file mode 100644 index 00000000000..ba1abcdb766 --- /dev/null +++ b/notes.txt @@ -0,0 +1,36 @@ +- Can we get rid of `plotly/api` entirely? +- Can we eliminate `plotly/conftest.py` and fix breaking tests? +- Why the distinction between `graph_objects` and `graph_objs`? + - Historical reasons, but `graph_objs` is widely used. + - Generate code into `graph_objects` and have `graph_objs` point at it + instead of vice versa. +- Switch focus for now to the main documentation in `./doc`. + +- Ran this to create a `.ipynb` file: + +``` +jupytext --to ipynb --execute --output pages/strip-charts.ipynb doc/python/strip-charts.md +``` + +- Loading the notebook like this, the charts don't show up: + +``` +jupyter notebook pages/strip-charts.ipynb +``` + +- Had to add this in a cell at the top: + +``` +import plotly.io as pio +pio.renderers.default = "notebook" +``` + +- `mkdocs build` produces many (many) lines like this that did *not* appear + before `mkdocs-jupyter` was added to `mkdocs.yml`: + +``` +[WARNING] Div at /var/folders/w2/l51fjbjd25n9zbwkz9fw9jp00000gn/T/tmpgvlxh1sq line 3 column 1 unclosed at /var/folders/w2/l51fjbjd25n9zbwkz9fw9jp00000gn/T/tmpgvlxh1sq line 6 column 1, closing implicitly. +``` + +- But with the `plotly.io` line, the `.ipynb` file is converted to usable HTML. + - Still clearly originated as a notebook, but the chart shows up. diff --git a/plotly/graph_objs/_figure.py b/plotly/graph_objs/_figure.py index f43df0e4160..28cb7a927d3 100644 --- a/plotly/graph_objs/_figure.py +++ b/plotly/graph_objs/_figure.py @@ -9977,7 +9977,7 @@ def add_image( source Specifies the data URI of the image to be visualized. The URI consists of "data:image/[]\\[;base64]," + subtype>][;base64]," stream :class:`plotly.graph_objects.image.Stream` instance or dict with compatible properties diff --git a/plotly/graph_objs/_figurewidget.py b/plotly/graph_objs/_figurewidget.py index a67d1870e9d..2b603479ecf 100644 --- a/plotly/graph_objs/_figurewidget.py +++ b/plotly/graph_objs/_figurewidget.py @@ -9979,7 +9979,7 @@ def add_image( source Specifies the data URI of the image to be visualized. The URI consists of "data:image/[]\\[;base64]," + subtype>][;base64]," stream :class:`plotly.graph_objects.image.Stream` instance or dict with compatible properties diff --git a/plotly/graph_objs/_image.py b/plotly/graph_objs/_image.py index 88220babb2a..0a6155dedf4 100644 --- a/plotly/graph_objs/_image.py +++ b/plotly/graph_objs/_image.py @@ -521,7 +521,7 @@ def opacity(self, val): def source(self): """ Specifies the data URI of the image to be visualized. The URI - consists of "data:image/[]\\[;base64]," + consists of "data:image/[][;base64]," The 'source' property is a string and must be specified as: - A string @@ -1021,7 +1021,7 @@ def _prop_descriptions(self): source Specifies the data URI of the image to be visualized. The URI consists of "data:image/[]\\[;base64]," + subtype>][;base64]," stream :class:`plotly.graph_objects.image.Stream` instance or dict with compatible properties @@ -1294,7 +1294,7 @@ def __init__( source Specifies the data URI of the image to be visualized. The URI consists of "data:image/[]\\[;base64]," + subtype>][;base64]," stream :class:`plotly.graph_objects.image.Stream` instance or dict with compatible properties diff --git a/plotly/graph_objs/contour/_contours.py b/plotly/graph_objs/contour/_contours.py index 430811a1fe9..841169d8775 100644 --- a/plotly/graph_objs/contour/_contours.py +++ b/plotly/graph_objs/contour/_contours.py @@ -115,7 +115,7 @@ def operation(self): Sets the constraint operation. "=" keeps regions equal to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and - "(]" keep regions inside `value[0]` to `value[1]` "]\\[", ")(", + "(]" keep regions inside `value[0]` to `value[1]` "][", ")(", "](", ")[" keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter @@ -123,7 +123,7 @@ def operation(self): The 'operation' property is an enumeration that may be specified as: - One of the following enumeration values: - ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', ']\[', + ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', '][', ')(', '](', ')['] Returns @@ -240,8 +240,8 @@ def value(self): `operation` is set to one of the comparison values (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be an - array of two numbers where the first is the lower bound and the + (`[],(),[),(],][,)(,](,)[`) "value" is expected to be an array + of two numbers where the first is the lower bound and the second is the upper bound. The 'value' property accepts values of any type @@ -283,11 +283,10 @@ def _prop_descriptions(self): to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "]\\[", ")(", "](", ")[" keep regions - outside `value[0]` to value[1]` Open vs. closed - intervals make no difference to constraint display, but - all versions are allowed for consistency with filter - transforms. + `value[1]` "][", ")(", "](", ")[" keep regions outside + `value[0]` to value[1]` Open vs. closed intervals make + no difference to constraint display, but all versions + are allowed for consistency with filter transforms. showlabels Determines whether to label the contour lines with their values. @@ -312,7 +311,7 @@ def _prop_descriptions(self): When `operation` is set to one of the comparison values (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + (`[],(),[),(],][,)(,](,)[`) "value" is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound. """ @@ -366,11 +365,10 @@ def __init__( to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "]\\[", ")(", "](", ")[" keep regions - outside `value[0]` to value[1]` Open vs. closed - intervals make no difference to constraint display, but - all versions are allowed for consistency with filter - transforms. + `value[1]` "][", ")(", "](", ")[" keep regions outside + `value[0]` to value[1]` Open vs. closed intervals make + no difference to constraint display, but all versions + are allowed for consistency with filter transforms. showlabels Determines whether to label the contour lines with their values. @@ -395,7 +393,7 @@ def __init__( When `operation` is set to one of the comparison values (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + (`[],(),[),(],][,)(,](,)[`) "value" is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound. diff --git a/plotly/graph_objs/contourcarpet/_contours.py b/plotly/graph_objs/contourcarpet/_contours.py index c17ec3ff88e..cf84e8cd541 100644 --- a/plotly/graph_objs/contourcarpet/_contours.py +++ b/plotly/graph_objs/contourcarpet/_contours.py @@ -114,7 +114,7 @@ def operation(self): Sets the constraint operation. "=" keeps regions equal to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and - "(]" keep regions inside `value[0]` to `value[1]` "]\\[", ")(", + "(]" keep regions inside `value[0]` to `value[1]` "][", ")(", "](", ")[" keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter @@ -122,7 +122,7 @@ def operation(self): The 'operation' property is an enumeration that may be specified as: - One of the following enumeration values: - ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', ']\[', + ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', '][', ')(', '](', ')['] Returns @@ -239,8 +239,8 @@ def value(self): `operation` is set to one of the comparison values (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be an - array of two numbers where the first is the lower bound and the + (`[],(),[),(],][,)(,](,)[`) "value" is expected to be an array + of two numbers where the first is the lower bound and the second is the upper bound. The 'value' property accepts values of any type @@ -281,11 +281,10 @@ def _prop_descriptions(self): to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "]\\[", ")(", "](", ")[" keep regions - outside `value[0]` to value[1]` Open vs. closed - intervals make no difference to constraint display, but - all versions are allowed for consistency with filter - transforms. + `value[1]` "][", ")(", "](", ")[" keep regions outside + `value[0]` to value[1]` Open vs. closed intervals make + no difference to constraint display, but all versions + are allowed for consistency with filter transforms. showlabels Determines whether to label the contour lines with their values. @@ -310,7 +309,7 @@ def _prop_descriptions(self): When `operation` is set to one of the comparison values (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + (`[],(),[),(],][,)(,](,)[`) "value" is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound. """ @@ -363,11 +362,10 @@ def __init__( to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "]\\[", ")(", "](", ")[" keep regions - outside `value[0]` to value[1]` Open vs. closed - intervals make no difference to constraint display, but - all versions are allowed for consistency with filter - transforms. + `value[1]` "][", ")(", "](", ")[" keep regions outside + `value[0]` to value[1]` Open vs. closed intervals make + no difference to constraint display, but all versions + are allowed for consistency with filter transforms. showlabels Determines whether to label the contour lines with their values. @@ -392,7 +390,7 @@ def __init__( When `operation` is set to one of the comparison values (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + (`[],(),[),(],][,)(,](,)[`) "value" is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound. diff --git a/plotly/graph_objs/histogram2dcontour/_contours.py b/plotly/graph_objs/histogram2dcontour/_contours.py index 2dade36cdb1..dff878cf44b 100644 --- a/plotly/graph_objs/histogram2dcontour/_contours.py +++ b/plotly/graph_objs/histogram2dcontour/_contours.py @@ -115,7 +115,7 @@ def operation(self): Sets the constraint operation. "=" keeps regions equal to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and - "(]" keep regions inside `value[0]` to `value[1]` "]\\[", ")(", + "(]" keep regions inside `value[0]` to `value[1]` "][", ")(", "](", ")[" keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter @@ -123,7 +123,7 @@ def operation(self): The 'operation' property is an enumeration that may be specified as: - One of the following enumeration values: - ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', ']\[', + ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', '][', ')(', '](', ')['] Returns @@ -240,8 +240,8 @@ def value(self): `operation` is set to one of the comparison values (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be an - array of two numbers where the first is the lower bound and the + (`[],(),[),(],][,)(,](,)[`) "value" is expected to be an array + of two numbers where the first is the lower bound and the second is the upper bound. The 'value' property accepts values of any type @@ -283,11 +283,10 @@ def _prop_descriptions(self): to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "]\\[", ")(", "](", ")[" keep regions - outside `value[0]` to value[1]` Open vs. closed - intervals make no difference to constraint display, but - all versions are allowed for consistency with filter - transforms. + `value[1]` "][", ")(", "](", ")[" keep regions outside + `value[0]` to value[1]` Open vs. closed intervals make + no difference to constraint display, but all versions + are allowed for consistency with filter transforms. showlabels Determines whether to label the contour lines with their values. @@ -312,7 +311,7 @@ def _prop_descriptions(self): When `operation` is set to one of the comparison values (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + (`[],(),[),(],][,)(,](,)[`) "value" is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound. """ @@ -366,11 +365,10 @@ def __init__( to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "]\\[", ")(", "](", ")[" keep regions - outside `value[0]` to value[1]` Open vs. closed - intervals make no difference to constraint display, but - all versions are allowed for consistency with filter - transforms. + `value[1]` "][", ")(", "](", ")[" keep regions outside + `value[0]` to value[1]` Open vs. closed intervals make + no difference to constraint display, but all versions + are allowed for consistency with filter transforms. showlabels Determines whether to label the contour lines with their values. @@ -395,7 +393,7 @@ def __init__( When `operation` is set to one of the comparison values (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + (`[],(),[),(],][,)(,](,)[`) "value" is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound. diff --git a/plotly/graph_objs/layout/_annotation.py b/plotly/graph_objs/layout/_annotation.py index f066a671d95..d06b1061141 100644 --- a/plotly/graph_objs/layout/_annotation.py +++ b/plotly/graph_objs/layout/_annotation.py @@ -226,7 +226,7 @@ def axref(self): - One of the following enumeration values: ['pixel'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -288,7 +288,7 @@ def ayref(self): - One of the following enumeration values: ['pixel'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -876,7 +876,7 @@ def xref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -994,7 +994,7 @@ def yref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_grid.py b/plotly/graph_objs/layout/_grid.py index c364d366744..8788027b3a4 100644 --- a/plotly/graph_objs/layout/_grid.py +++ b/plotly/graph_objs/layout/_grid.py @@ -145,11 +145,11 @@ def subplots(self): The 'subplots' property is an info array that may be specified as: * a 2D list where: - The 'subplots[i]\[j]' property is an enumeration that may be specified as: + The 'subplots[i][j]' property is an enumeration that may be specified as: - One of the following enumeration values: [''] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?y([2-9]|[1-9]\[0-9]+)?$'] + ['^x([2-9]|[1-9][0-9]+)?y([2-9]|[1-9][0-9]+)?$'] Returns ------- @@ -177,7 +177,7 @@ def xaxes(self): - One of the following enumeration values: [''] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -246,7 +246,7 @@ def yaxes(self): - One of the following enumeration values: [''] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_image.py b/plotly/graph_objs/layout/_image.py index 402c17fef77..33865e42ac6 100644 --- a/plotly/graph_objs/layout/_image.py +++ b/plotly/graph_objs/layout/_image.py @@ -280,7 +280,7 @@ def xref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -349,7 +349,7 @@ def yref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_selection.py b/plotly/graph_objs/layout/_selection.py index 799a2e8d4e1..3ebf7419c32 100644 --- a/plotly/graph_objs/layout/_selection.py +++ b/plotly/graph_objs/layout/_selection.py @@ -206,7 +206,7 @@ def xref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -271,7 +271,7 @@ def yref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_shape.py b/plotly/graph_objs/layout/_shape.py index 38b7eada241..8923d1c172f 100644 --- a/plotly/graph_objs/layout/_shape.py +++ b/plotly/graph_objs/layout/_shape.py @@ -564,7 +564,7 @@ def xref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -720,7 +720,7 @@ def yref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_xaxis.py b/plotly/graph_objs/layout/_xaxis.py index 160f7fcff4e..64331a5d5fa 100644 --- a/plotly/graph_objs/layout/_xaxis.py +++ b/plotly/graph_objs/layout/_xaxis.py @@ -116,8 +116,8 @@ def anchor(self): - One of the following enumeration values: ['free'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', - '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$', + '^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -781,8 +781,8 @@ def matches(self): The 'matches' property is an enumeration that may be specified as: - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', - '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$', + '^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -925,8 +925,8 @@ def overlaying(self): - One of the following enumeration values: ['free'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', - '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$', + '^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -1122,8 +1122,8 @@ def scaleanchor(self): - One of the following enumeration values: [False] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', - '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$', + '^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_yaxis.py b/plotly/graph_objs/layout/_yaxis.py index d0b625bf646..22d79241caa 100644 --- a/plotly/graph_objs/layout/_yaxis.py +++ b/plotly/graph_objs/layout/_yaxis.py @@ -116,8 +116,8 @@ def anchor(self): - One of the following enumeration values: ['free'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', - '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$', + '^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -803,8 +803,8 @@ def matches(self): The 'matches' property is an enumeration that may be specified as: - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', - '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$', + '^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -947,8 +947,8 @@ def overlaying(self): - One of the following enumeration values: ['free'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', - '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$', + '^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -1106,8 +1106,8 @@ def scaleanchor(self): - One of the following enumeration values: [False] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', - '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$', + '^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/parcoords/_dimension.py b/plotly/graph_objs/parcoords/_dimension.py index 5c55be2f0dc..0c28911e144 100644 --- a/plotly/graph_objs/parcoords/_dimension.py +++ b/plotly/graph_objs/parcoords/_dimension.py @@ -41,8 +41,8 @@ def constraintrange(self): (1) The 'constraintrange[1]' property accepts values of any type * a 2D list where: - (0) The 'constraintrange[i]\[0]' property accepts values of any type - (1) The 'constraintrange[i]\[1]' property accepts values of any type + (0) The 'constraintrange[i][0]' property accepts values of any type + (1) The 'constraintrange[i][1]' property accepts values of any type Returns ------- diff --git a/plotly/graph_objs/sankey/_node.py b/plotly/graph_objs/sankey/_node.py index 80942eba028..8bb6492aea7 100644 --- a/plotly/graph_objs/sankey/_node.py +++ b/plotly/graph_objs/sankey/_node.py @@ -142,7 +142,7 @@ def groups(self): The 'groups' property is an info array that may be specified as: * a 2D list where: - The 'groups[i]\[j]' property is a number and may be specified as: + The 'groups[i][j]' property is a number and may be specified as: - An int or float Returns diff --git a/plotly/graph_objs/table/_cells.py b/plotly/graph_objs/table/_cells.py index 36b0cc0a299..083afdd03ca 100644 --- a/plotly/graph_objs/table/_cells.py +++ b/plotly/graph_objs/table/_cells.py @@ -259,7 +259,7 @@ def suffixsrc(self, val): @property def values(self): """ - Cell values. `values[m]\\[n]` represents the value of the `n`th + Cell values. `values[m][n]` represents the value of the `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string. @@ -337,11 +337,11 @@ def _prop_descriptions(self): Sets the source reference on Chart Studio Cloud for `suffix`. values - Cell values. `values[m]\\[n]` represents the value of - the `n`th point in column `m`, therefore the - `values[m]` vector length for all columns must be the - same (longer vectors will be truncated). Each value - must be a finite number or a string. + Cell values. `values[m][n]` represents the value of the + `n`th point in column `m`, therefore the `values[m]` + vector length for all columns must be the same (longer + vectors will be truncated). Each value must be a finite + number or a string. valuessrc Sets the source reference on Chart Studio Cloud for `values`. @@ -413,11 +413,11 @@ def __init__( Sets the source reference on Chart Studio Cloud for `suffix`. values - Cell values. `values[m]\\[n]` represents the value of - the `n`th point in column `m`, therefore the - `values[m]` vector length for all columns must be the - same (longer vectors will be truncated). Each value - must be a finite number or a string. + Cell values. `values[m][n]` represents the value of the + `n`th point in column `m`, therefore the `values[m]` + vector length for all columns must be the same (longer + vectors will be truncated). Each value must be a finite + number or a string. valuessrc Sets the source reference on Chart Studio Cloud for `values`. diff --git a/plotly/graph_objs/table/_header.py b/plotly/graph_objs/table/_header.py index 245b13d7bc7..5a4f6f6bac3 100644 --- a/plotly/graph_objs/table/_header.py +++ b/plotly/graph_objs/table/_header.py @@ -259,8 +259,8 @@ def suffixsrc(self, val): @property def values(self): """ - Header cell values. `values[m]\\[n]` represents the value of - the `n`th point in column `m`, therefore the `values[m]` vector + Header cell values. `values[m][n]` represents the value of the + `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string. @@ -337,8 +337,8 @@ def _prop_descriptions(self): Sets the source reference on Chart Studio Cloud for `suffix`. values - Header cell values. `values[m]\\[n]` represents the - value of the `n`th point in column `m`, therefore the + Header cell values. `values[m][n]` represents the value + of the `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string. @@ -413,8 +413,8 @@ def __init__( Sets the source reference on Chart Studio Cloud for `suffix`. values - Header cell values. `values[m]\\[n]` represents the - value of the `n`th point in column `m`, therefore the + Header cell values. `values[m][n]` represents the value + of the `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string. From 80792d861c8f8806a60557cb7d63b676093187d9 Mon Sep 17 00:00:00 2001 From: Greg Wilson Date: Sat, 26 Jul 2025 11:35:32 -0400 Subject: [PATCH 08/16] better verbosity --- Makefile | 15 +++++++++++---- bin/run_markdown.py | 20 ++++++++++---------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index 2313542cca5..e373577a249 100644 --- a/Makefile +++ b/Makefile @@ -3,8 +3,9 @@ RUN = uv run PACKAGE_DIRS = _plotly_utils plotly CODE_DIRS = ${PACKAGE_DIRS} scripts -EXAMPLE_SRC = doc/python/cone-plot.md doc/python/strip-charts.md # EXAMPLE_SRC = $(wildcard doc/python/*.md) +EXAMPLE_SRC = doc/python/cone-plot.md doc/python/strip-charts.md +EXAMPLE_DST = $(patsubst doc/python/%.md,pages/examples/%.md,${EXAMPLE_SRC}) ## commands: show available commands commands: @@ -23,9 +24,15 @@ docs-lint: docs-tmp: MKDOCS_TEMP_DIR=./docs_tmp ${RUN} mkdocs build -## examples: generate Markdown from doc/python -examples: - ${RUN} bin/run_markdown.py --outdir pages/examples --inline --verbose ${EXAMPLE_SRC} +## examples-batch: generate Markdown for all doc/python +examples-batch: + ${RUN} bin/run_markdown.py --outdir pages/examples --inline --verbose 1 ${EXAMPLE_SRC} + +## examples: generate Markdown for individual doc/python +examples: ${EXAMPLE_DST} + +pages/examples/%.md: doc/python/%.md + ${RUN} bin/run_markdown.py --outdir pages/examples --inline --verbose 2 $< ## format: reformat code format: diff --git a/bin/run_markdown.py b/bin/run_markdown.py index 6f29ee2fdff..887431d361b 100644 --- a/bin/run_markdown.py +++ b/bin/run_markdown.py @@ -15,7 +15,7 @@ def main(): args = _parse_args() - for filename in args.input: + for filename in args.inputs: _do_file(args, Path(filename)) @@ -43,27 +43,27 @@ def _do_file(args, input_file): sys.exit(1) # Parse markdown and extract code blocks - _report(args.verbose, f"Processing {input_file}...") + _report(args.verbose > 0, f"Processing {input_file}...") code_blocks = _parse_md(content) - _report(args.verbose, f"- Found {len(code_blocks)} code blocks") + _report(args.verbose > 1, f"- Found {len(code_blocks)} code blocks") # Execute code blocks and collect results execution_results = [] figure_counter = 0 for i, block in enumerate(code_blocks): - _report(args.verbose, f"- Executing block {i + 1}/{len(code_blocks)}") + _report(args.verbose > 1, f"- Executing block {i + 1}/{len(code_blocks)}") figure_counter, result = _run_code(block["code"], args.outdir, stem, figure_counter) execution_results.append(result) - _report(result["error"], f" - Warning: block {i + 1} had an error") - _report(result["images"], f" - Generated {len(result['images'])} image(s)") + _report(args.verbose > 0 and bool(result["error"]), f" - Warning: block {i + 1} had an error") + _report(args.verbose > 1 and bool(result["images"]), f" - Generated {len(result['images'])} image(s)") # Generate and save output content = _generate_markdown(args, content, code_blocks, execution_results, args.outdir) try: with open(output_file, "w", encoding="utf-8") as f: f.write(content) - _report(args.verbose, f"- Output written to {output_file}") - _report(any(result["images"] for result in execution_results), f"- Images saved to {args.outdir}") + _report(args.verbose > 1, f"- Output written to {output_file}") + _report(args.verbose > 1 and any(result["images"] for result in execution_results), f"- Images saved to {args.outdir}") except Exception as e: print(f"Error writing output file: {e}", file=sys.stderr) sys.exit(1) @@ -149,10 +149,10 @@ def _generate_markdown(args, content, code_blocks, execution_results, output_dir def _parse_args(): """Parse command-line arguments.""" parser = argparse.ArgumentParser(description="Process Markdown files with code blocks") - parser.add_argument("input", nargs="+", help="Input .md file") + parser.add_argument("inputs", nargs="+", help="Input .md files") parser.add_argument("--inline", action="store_true", help="Inline HTML in .md") parser.add_argument("--outdir", type=Path, help="Output directory") - parser.add_argument("--verbose", action="store_true", help="Report progress") + parser.add_argument("--verbose", type=int, default=0, help="Integer verbosity level") return parser.parse_args() From 93867506ef78bae30704c75fc9627f63ffedf6b5 Mon Sep 17 00:00:00 2001 From: Greg Wilson Date: Tue, 29 Jul 2025 08:29:37 -0400 Subject: [PATCH 09/16] feat: conditionalize Makefile target for testing --- Makefile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e373577a249..56f5a2895ba 100644 --- a/Makefile +++ b/Makefile @@ -3,8 +3,13 @@ RUN = uv run PACKAGE_DIRS = _plotly_utils plotly CODE_DIRS = ${PACKAGE_DIRS} scripts -# EXAMPLE_SRC = $(wildcard doc/python/*.md) + +ifdef MKDOCS_ALL +EXAMPLE_SRC = $(wildcard doc/python/*.md) +else EXAMPLE_SRC = doc/python/cone-plot.md doc/python/strip-charts.md +endif + EXAMPLE_DST = $(patsubst doc/python/%.md,pages/examples/%.md,${EXAMPLE_SRC}) ## commands: show available commands From 36b21ab6bf132a7824aded390d67d0ff6bd6f35b Mon Sep 17 00:00:00 2001 From: Liam Connors Date: Tue, 29 Jul 2025 15:18:15 -0400 Subject: [PATCH 10/16] add missing imports and variable definitions --- doc/python/3d-mesh.md | 2 ++ doc/python/axes.md | 4 +++- doc/python/box-plots.md | 1 + doc/python/creating-and-updating-figures.md | 3 +++ doc/python/imshow.md | 1 + doc/python/network-graphs.md | 2 ++ doc/python/ohlc-charts.md | 2 ++ doc/python/templates.md | 1 + doc/python/time-series.md | 2 +- 9 files changed, 16 insertions(+), 2 deletions(-) diff --git a/doc/python/3d-mesh.md b/doc/python/3d-mesh.md index 610c8153a90..edec74b6248 100644 --- a/doc/python/3d-mesh.md +++ b/doc/python/3d-mesh.md @@ -154,6 +154,8 @@ Whereas the previous example used the default `intensitymode='vertex'`, we plot ```python import plotly.graph_objects as go +import numpy as np + fig = go.Figure(data=[ go.Mesh3d( # 8 vertices of a cube diff --git a/doc/python/axes.md b/doc/python/axes.md index df8672e0e2e..2739c6fcc42 100644 --- a/doc/python/axes.md +++ b/doc/python/axes.md @@ -118,7 +118,7 @@ The PX `labels` argument can also be used without a data frame argument: ```python import plotly.express as px -fig = px.bar(df, x=["Apples", "Oranges"], y=[10,20], color=["Here", "There"], +fig = px.bar(x=["Apples", "Oranges"], y=[10,20], color=["Here", "There"], labels=dict(x="Fruit", y="Amount", color="Place") ) fig.show() @@ -460,6 +460,7 @@ Here, `ticklabelstandoff=15` moves the labels 15 pixels further away from the x- ```python import plotly.express as px +import pandas as pd df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv') @@ -487,6 +488,7 @@ To draw the label for the minor tick before each major tick, set `ticklabelindex ```python import plotly.express as px +import pandas as pd df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv') diff --git a/doc/python/box-plots.md b/doc/python/box-plots.md index 244c21106ef..1eaec475db2 100644 --- a/doc/python/box-plots.md +++ b/doc/python/box-plots.md @@ -448,6 +448,7 @@ fig.show() ```python import plotly.graph_objects as go +import numpy as np x_data = ['Carmelo Anthony', 'Dwyane Wade', 'Deron Williams', 'Brook Lopez', diff --git a/doc/python/creating-and-updating-figures.md b/doc/python/creating-and-updating-figures.md index 694e0d1ae0d..b23d69e41be 100644 --- a/doc/python/creating-and-updating-figures.md +++ b/doc/python/creating-and-updating-figures.md @@ -206,6 +206,7 @@ fig.show() The `plotly.subplots.make_subplots()` function produces a graph object figure that is preconfigured with a grid of subplots that traces can be added to. The `add_trace()` function will be discussed more below. ```python +import plotly.graph_objects as go from plotly.subplots import make_subplots fig = make_subplots(rows=1, cols=2) @@ -260,6 +261,7 @@ fig.show() If a figure was created using `plotly.subplots.make_subplots()`, then supplying the `row` and `col` arguments to `add_trace()` can be used to add a trace to a particular subplot. ```python +import plotly.graph_objects as go from plotly.subplots import make_subplots fig = make_subplots(rows=1, cols=2) @@ -274,6 +276,7 @@ This also works for figures created by Plotly Express using the `facet_row` and ```python import plotly.express as px +import plotly.graph_objects as go df = px.data.iris() diff --git a/doc/python/imshow.md b/doc/python/imshow.md index bec3b83de93..08be73e2985 100644 --- a/doc/python/imshow.md +++ b/doc/python/imshow.md @@ -274,6 +274,7 @@ fig.show() ### Displaying an image and the histogram of color values ```python +import plotly.graph_objects as go from plotly.subplots import make_subplots from skimage import data img = data.chelsea() diff --git a/doc/python/network-graphs.md b/doc/python/network-graphs.md index ae47e9923c0..c9d85b5aa31 100644 --- a/doc/python/network-graphs.md +++ b/doc/python/network-graphs.md @@ -128,6 +128,8 @@ node_trace.text = node_text #### Create Network Graph ```python +import plotly.graph_objects as go + fig = go.Figure(data=[edge_trace, node_trace], layout=go.Layout( title=dict( diff --git a/doc/python/ohlc-charts.md b/doc/python/ohlc-charts.md index f59228b79c0..a11a06970aa 100644 --- a/doc/python/ohlc-charts.md +++ b/doc/python/ohlc-charts.md @@ -138,6 +138,8 @@ import plotly.graph_objects as go import pandas as pd from datetime import datetime +df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv') + hovertext=[] for i in range(len(df['AAPL.Open'])): hovertext.append('Open: '+str(df['AAPL.Open'][i])+'
Close: '+str(df['AAPL.Close'][i])) diff --git a/doc/python/templates.md b/doc/python/templates.md index b110b736b1d..070d8633f35 100644 --- a/doc/python/templates.md +++ b/doc/python/templates.md @@ -389,6 +389,7 @@ Combining themes is also supported by Plotly Express ```python import plotly.io as pio +import plotly.graph_objects as go import plotly.express as px pio.templates["draft"] = go.layout.Template( diff --git a/doc/python/time-series.md b/doc/python/time-series.md index c55ffef7a42..bc3ee71df17 100644 --- a/doc/python/time-series.md +++ b/doc/python/time-series.md @@ -325,7 +325,7 @@ fig.show() ``` ```python -import plotly.graph_objects as go +import plotly.express as px import pandas as pd df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv') From 1e54e0cf6d610391e45733548af5bdf98c84bdb0 Mon Sep 17 00:00:00 2001 From: Liam Connors Date: Tue, 29 Jul 2025 15:18:15 -0400 Subject: [PATCH 11/16] add missing imports and variable definitions --- doc/python/3d-mesh.md | 2 ++ doc/python/axes.md | 4 +++- doc/python/box-plots.md | 1 + doc/python/creating-and-updating-figures.md | 3 +++ doc/python/imshow.md | 1 + doc/python/network-graphs.md | 2 ++ doc/python/ohlc-charts.md | 2 ++ doc/python/templates.md | 1 + doc/python/time-series.md | 2 +- 9 files changed, 16 insertions(+), 2 deletions(-) diff --git a/doc/python/3d-mesh.md b/doc/python/3d-mesh.md index 610c8153a90..edec74b6248 100644 --- a/doc/python/3d-mesh.md +++ b/doc/python/3d-mesh.md @@ -154,6 +154,8 @@ Whereas the previous example used the default `intensitymode='vertex'`, we plot ```python import plotly.graph_objects as go +import numpy as np + fig = go.Figure(data=[ go.Mesh3d( # 8 vertices of a cube diff --git a/doc/python/axes.md b/doc/python/axes.md index df8672e0e2e..2739c6fcc42 100644 --- a/doc/python/axes.md +++ b/doc/python/axes.md @@ -118,7 +118,7 @@ The PX `labels` argument can also be used without a data frame argument: ```python import plotly.express as px -fig = px.bar(df, x=["Apples", "Oranges"], y=[10,20], color=["Here", "There"], +fig = px.bar(x=["Apples", "Oranges"], y=[10,20], color=["Here", "There"], labels=dict(x="Fruit", y="Amount", color="Place") ) fig.show() @@ -460,6 +460,7 @@ Here, `ticklabelstandoff=15` moves the labels 15 pixels further away from the x- ```python import plotly.express as px +import pandas as pd df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv') @@ -487,6 +488,7 @@ To draw the label for the minor tick before each major tick, set `ticklabelindex ```python import plotly.express as px +import pandas as pd df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv') diff --git a/doc/python/box-plots.md b/doc/python/box-plots.md index 244c21106ef..1eaec475db2 100644 --- a/doc/python/box-plots.md +++ b/doc/python/box-plots.md @@ -448,6 +448,7 @@ fig.show() ```python import plotly.graph_objects as go +import numpy as np x_data = ['Carmelo Anthony', 'Dwyane Wade', 'Deron Williams', 'Brook Lopez', diff --git a/doc/python/creating-and-updating-figures.md b/doc/python/creating-and-updating-figures.md index 694e0d1ae0d..b23d69e41be 100644 --- a/doc/python/creating-and-updating-figures.md +++ b/doc/python/creating-and-updating-figures.md @@ -206,6 +206,7 @@ fig.show() The `plotly.subplots.make_subplots()` function produces a graph object figure that is preconfigured with a grid of subplots that traces can be added to. The `add_trace()` function will be discussed more below. ```python +import plotly.graph_objects as go from plotly.subplots import make_subplots fig = make_subplots(rows=1, cols=2) @@ -260,6 +261,7 @@ fig.show() If a figure was created using `plotly.subplots.make_subplots()`, then supplying the `row` and `col` arguments to `add_trace()` can be used to add a trace to a particular subplot. ```python +import plotly.graph_objects as go from plotly.subplots import make_subplots fig = make_subplots(rows=1, cols=2) @@ -274,6 +276,7 @@ This also works for figures created by Plotly Express using the `facet_row` and ```python import plotly.express as px +import plotly.graph_objects as go df = px.data.iris() diff --git a/doc/python/imshow.md b/doc/python/imshow.md index bec3b83de93..08be73e2985 100644 --- a/doc/python/imshow.md +++ b/doc/python/imshow.md @@ -274,6 +274,7 @@ fig.show() ### Displaying an image and the histogram of color values ```python +import plotly.graph_objects as go from plotly.subplots import make_subplots from skimage import data img = data.chelsea() diff --git a/doc/python/network-graphs.md b/doc/python/network-graphs.md index ae47e9923c0..c9d85b5aa31 100644 --- a/doc/python/network-graphs.md +++ b/doc/python/network-graphs.md @@ -128,6 +128,8 @@ node_trace.text = node_text #### Create Network Graph ```python +import plotly.graph_objects as go + fig = go.Figure(data=[edge_trace, node_trace], layout=go.Layout( title=dict( diff --git a/doc/python/ohlc-charts.md b/doc/python/ohlc-charts.md index f59228b79c0..a11a06970aa 100644 --- a/doc/python/ohlc-charts.md +++ b/doc/python/ohlc-charts.md @@ -138,6 +138,8 @@ import plotly.graph_objects as go import pandas as pd from datetime import datetime +df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv') + hovertext=[] for i in range(len(df['AAPL.Open'])): hovertext.append('Open: '+str(df['AAPL.Open'][i])+'
Close: '+str(df['AAPL.Close'][i])) diff --git a/doc/python/templates.md b/doc/python/templates.md index b110b736b1d..070d8633f35 100644 --- a/doc/python/templates.md +++ b/doc/python/templates.md @@ -389,6 +389,7 @@ Combining themes is also supported by Plotly Express ```python import plotly.io as pio +import plotly.graph_objects as go import plotly.express as px pio.templates["draft"] = go.layout.Template( diff --git a/doc/python/time-series.md b/doc/python/time-series.md index c55ffef7a42..bc3ee71df17 100644 --- a/doc/python/time-series.md +++ b/doc/python/time-series.md @@ -325,7 +325,7 @@ fig.show() ``` ```python -import plotly.graph_objects as go +import plotly.express as px import pandas as pd df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv') From a07ea4587d528b9c9dc7e9db3e773903f4252ad7 Mon Sep 17 00:00:00 2001 From: Greg Wilson Date: Wed, 30 Jul 2025 09:28:25 -0400 Subject: [PATCH 12/16] feat: script to check all examples in doc/python. - Updates `pyproject.toml` to install packages previously listed in `doc/requirements.txt`. - Removes `doc/requirements.txt`. - Run `python bin/check-all-md.py doc/python/*.md` to re-run all examples. --- bin/check-all-md.py | 18 + doc/requirements.txt | 48 -- pyproject.toml | 8 + uv.lock | 1045 ++++++++++++++++++++++++++++++++++++++---- 4 files changed, 984 insertions(+), 135 deletions(-) create mode 100644 bin/check-all-md.py delete mode 100644 doc/requirements.txt diff --git a/bin/check-all-md.py b/bin/check-all-md.py new file mode 100644 index 00000000000..95fe75f3d33 --- /dev/null +++ b/bin/check-all-md.py @@ -0,0 +1,18 @@ +from pathlib import Path +import os +import re +import sys + +PAT = re.compile(r"^```python\n(.+?)\n```", re.MULTILINE | re.DOTALL) +TMP_FILE = "tmp.py" + +for filename in sys.argv[1:]: + content = Path(filename).read_text() + blocks = PAT.findall(content) + for i, b in enumerate(blocks): + Path(TMP_FILE).write_text(b.strip()) + sys.stdout.write(f"\n{'=' * 40}\n{filename}: {i}\n") + sys.stdout.flush() + sys.stdout.write(f"{'-' * 40}\n") + sys.stdout.flush() + os.system(f"python {TMP_FILE} > /dev/null") diff --git a/doc/requirements.txt b/doc/requirements.txt deleted file mode 100644 index a874f2f0228..00000000000 --- a/doc/requirements.txt +++ /dev/null @@ -1,48 +0,0 @@ -plotly==6.2.0 -anywidget -cufflinks==0.17.3 -dash-bio -dask==2022.2.0 -datashader==0.14.4 -geopandas==0.8.1 -geoparse<=2.0.3 -igraph -jinja2<3.1 -jupyter -jupyter-client<7 -jupytext==1.16.4 -kaleido -nbconvert==5.6.1 -networkx==2.8.0 -notebook -numpy==1.22.4 -orjson -pandas==1.4.0 -pathlib -patsy==0.5.6 -plotly-geo -polars -pooch -psutil -pyarrow -pyshp==2.1.2 -python-frontmatter -recommonmark -requests -scikit-image==0.20.0 -scikit-learn -scipy==1.9.1 -shapely==2.0.5 -sphinx==3.5.4 -sphinx_bootstrap_theme -sphinxcontrib-applehelp==1.0.2 -sphinxcontrib-devhelp==1.0.2 -sphinxcontrib-htmlhelp==2.0.0 -sphinxcontrib-jsmath==1.0.1 -sphinxcontrib-qthelp==1.0.3 -sphinxcontrib-serializinghtml==1.1.5 -squarify -statsmodels==0.14.2 -umap-learn==0.5.1 -wget -xarray==2022.9.0 diff --git a/pyproject.toml b/pyproject.toml index b427a4701bd..ef2bf459c2c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -63,9 +63,13 @@ dev_optional = [ "plotly[kaleido]", "anywidget", "colorcet", + "dash_bio", + "datashader", # fiona>1.9.6 is not compatible with geopandas<1; geopandas>=1 is not compatible with python 3.8 "fiona<=1.9.6;python_version<='3.8'", "geopandas", + "google", + "igraph", "inflect", "numpy", "orjson", @@ -74,15 +78,19 @@ dev_optional = [ "pillow", "plotly-geo", "polars[timezone]", + "pooch", "pyarrow", "pydoclint", "pyshp", "pytz", "scikit-image", + "scikit-learn", "scipy", "shapely", "statsmodels", + "umap", "vaex;python_version<='3.9'", + "wget", "xarray" ] dev = [ diff --git a/uv.lock b/uv.lock index 987dadda1bf..6695a852471 100644 --- a/uv.lock +++ b/uv.lock @@ -391,6 +391,98 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/50/cd/30110dc0ffcf3b131156077b90e9f60ed75711223f306da4db08eff8403b/beautifulsoup4-4.13.4-py3-none-any.whl", hash = "sha256:9bbbb14bfde9d79f38b8cd5f8c7c85f4b8f2523190ebed90e950a8dea4cb1c4b", size = 187285, upload-time = "2025-04-15T17:05:12.221Z" }, ] +[[package]] +name = "biopython" +version = "1.83" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cc/d4/3d8848191a7a37187704c382e6dfda4d6a47d05a14cd64f004c55a3cd5a1/biopython-1.83.tar.gz", hash = "sha256:78e6bfb78de63034037afd35fe77cb6e0a9e5b62706becf78a7d922b16ed83f7", size = 19431530, upload-time = "2024-01-10T12:25:28.048Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f3/72/121580953f63a20870d7e6ce1bd0bb86fb916b034870189b61cbc8f6e096/biopython-1.83-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e2cc737906d8de47eedbc4476f711b960c16a65daa8cdd021875398c81999a09", size = 2689906, upload-time = "2024-01-10T12:25:43.026Z" }, + { url = "https://files.pythonhosted.org/packages/9a/ea/45c6239aa17ce0994ee5deb6d847e22c9f75723612c67a258957e63e0a5b/biopython-1.83-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:741abad84165e4caf0c80e485054135f51c21177e50ac6fcc502a45a6e8f7311", size = 2676869, upload-time = "2024-02-26T13:47:12.275Z" }, + { url = "https://files.pythonhosted.org/packages/1f/24/54402fd6343a688a59f83aab37234ae2716dc7ed0ed8c33cef02727acfc3/biopython-1.83-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2df408be9816dd98c28fe181ea93fb6e0d375bf1763ad9ed503ac30bb2df5b1a", size = 3101912, upload-time = "2024-01-10T12:25:49.786Z" }, + { url = "https://files.pythonhosted.org/packages/8c/6a/f38bc09251404d546cc7011ef27353531ceba5f29f25be35e66706e24a13/biopython-1.83-cp310-cp310-win32.whl", hash = "sha256:a0c1c70789c7e2a26563db5ba533fb9fea0cc1f2c7bc7ad240146cb223ba44a3", size = 2689413, upload-time = "2024-01-10T12:25:55.772Z" }, + { url = "https://files.pythonhosted.org/packages/0c/09/4b5ad1d3f08c040ad4809e937d4d469eebb05f93a4fb7a85a9e7e40ccde8/biopython-1.83-cp310-cp310-win_amd64.whl", hash = "sha256:56f03f43c183acb88c082bc31e5f047fcc6d0aceb5270fbd29c31ab769795b86", size = 2725216, upload-time = "2024-01-10T12:26:01.086Z" }, + { url = "https://files.pythonhosted.org/packages/44/a1/53fdaf58f677a54dca2cf23d4a6dafc3c55478416f602738308fda2a107f/biopython-1.83-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a01dfdad7210f2fd5c4f36606278f91dbfdda6dac02347206d13cc618e79fe32", size = 2690083, upload-time = "2024-01-10T12:26:06.269Z" }, + { url = "https://files.pythonhosted.org/packages/7e/40/0543d137e4a45b0e5d3a7c5ce9b607e687d9e5b715eadfdae34de8d6906a/biopython-1.83-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3686ff61df3f24ecf6f23826e4fe5172c5e5f745099bc8fbb176f5304582f88f", size = 2676975, upload-time = "2024-02-26T13:47:18.835Z" }, + { url = "https://files.pythonhosted.org/packages/2a/38/3b971995c8bb2fad0b9809a61c8099fb1b2e579236e4c94fb0797825e171/biopython-1.83-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c756c0b81702c705141c87c2805203df01c6d4cf290e8cefd48cbc61a3c85b82", size = 3113769, upload-time = "2024-01-10T12:26:11.343Z" }, + { url = "https://files.pythonhosted.org/packages/f1/91/0759c7476a157887d68a1b286de4f1a7ec387cabdbf022e78d6c9a1010a9/biopython-1.83-cp311-cp311-win32.whl", hash = "sha256:0496f2a6e6e060d8ff0f34784ad15ed342b10cfe282020efe168286f0c14c479", size = 2689340, upload-time = "2024-01-10T12:26:15.995Z" }, + { url = "https://files.pythonhosted.org/packages/b8/c8/18570a63e8b6fe99a856698d500fb326f0ce247d2b70d8d631d4abcb5c9c/biopython-1.83-cp311-cp311-win_amd64.whl", hash = "sha256:8552cc467429b555c604b84fc174c33923bf7e4c735774eda505f1d5a9c2feab", size = 2725183, upload-time = "2024-01-10T12:26:21.15Z" }, + { url = "https://files.pythonhosted.org/packages/82/fd/176b5198f3d31d089c66a2ae6236b4f9ba311e251a3cc6df9708fc31f4ad/biopython-1.83-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0d5ce14755a6b49dea4743cf6929570afe5becb66ad222194984c7bf04218f86", size = 2690888, upload-time = "2024-01-10T12:26:25.95Z" }, + { url = "https://files.pythonhosted.org/packages/29/86/cc72bc4aef2607e28520793dbb3878191428605900247d23c3e68102803a/biopython-1.83-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:29708772651d930e808cd24c519fd4f39b2e719668944c0aa1eaf0b1deef9f48", size = 2677167, upload-time = "2024-02-26T13:47:24.769Z" }, + { url = "https://files.pythonhosted.org/packages/13/82/f279caa7647d4afde960ae466cab1f44257d39ca26ecf4deecd086f23290/biopython-1.83-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b35aa095de0fa8339b70664797d0e83322a1a9d512e2fd52d4e872df5189f56", size = 3127122, upload-time = "2024-01-10T12:26:31.016Z" }, + { url = "https://files.pythonhosted.org/packages/53/18/ece4454497a2e14042deba6ec4ad4e0328d01035527a752c6db5e2244dd2/biopython-1.83-cp312-cp312-win32.whl", hash = "sha256:118425a210cb3d184c7a78154c5646089366faf124cd46c6056ca7f9302b94ad", size = 2690448, upload-time = "2024-01-10T12:26:35.525Z" }, + { url = "https://files.pythonhosted.org/packages/8a/32/ad3f07c3dfc20a8f168f897b6d2312647ee3e598e0cd1270304897049126/biopython-1.83-cp312-cp312-win_amd64.whl", hash = "sha256:ca94e8ea8907de841a515af55acb1922a9de99b3144c738a193f2a75e4726078", size = 2725541, upload-time = "2024-01-10T12:26:40.218Z" }, + { url = "https://files.pythonhosted.org/packages/43/e5/30dc0f967b2792bedff350d4a87e30c3cbbe0e4cb2608b7e6241056d6db9/biopython-1.83-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e37884fe39e4560bf5934a4ec4ba7f7fe0e7c091053d03d05b20a70557167717", size = 2689881, upload-time = "2024-01-10T12:26:45.027Z" }, + { url = "https://files.pythonhosted.org/packages/bd/5f/7494b759be0478cb2779a5e26db0ff6356eeab051ced65496ff7af16137c/biopython-1.83-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4cc011346bc8af264e3d3ea98c665b6ebe20e503f1dd50ee7e0bc913941b4c6e", size = 2676864, upload-time = "2024-02-26T13:47:29.893Z" }, + { url = "https://files.pythonhosted.org/packages/05/2f/4ad16933096030e76046659f40b381869e46c4a26f4735969240d2c0adee/biopython-1.83-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd9bc6fef3f6a10043635a75e1a77c9dce877375140e81059c67c73d4ce65c4c", size = 3111259, upload-time = "2024-01-10T12:26:51.006Z" }, + { url = "https://files.pythonhosted.org/packages/70/4a/6f9653c962ed59c3b166ffcd12336f4c6188b080d21a1aacc959efc3b151/biopython-1.83-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2c3584122a5daca25b3914a32c52785b051c11518cd5e111e9e89ee04a6234fe", size = 3073513, upload-time = "2024-01-10T12:26:56.753Z" }, + { url = "https://files.pythonhosted.org/packages/13/2f/e344b9d250a9f6f7d9b07e543ee05bc0d4e53c5fab140a9a1b7d4225389f/biopython-1.83-cp38-cp38-win32.whl", hash = "sha256:641c1a860705d6740eb16c6147b2b730b05a8f5974db804c14d5faa8a1446085", size = 2689412, upload-time = "2024-01-10T12:27:01.309Z" }, + { url = "https://files.pythonhosted.org/packages/2a/3c/10f22f3599acdf12b2a7a687589e3722b521147fe0e7846bd11f294eaf90/biopython-1.83-cp38-cp38-win_amd64.whl", hash = "sha256:94b68e550619e1b6e3784ed8cecb62f201d70d8b87d3a90365291f065ab42bd9", size = 2725178, upload-time = "2024-01-10T12:27:06.186Z" }, + { url = "https://files.pythonhosted.org/packages/a7/a9/1b1eb46b43541c7d5fd627022915ff80a5d3ba860fdf206a665b3d3d9077/biopython-1.83-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:81d1e2515b380e1876720ba79dbf50f8ef3a38cc38ba5953ef61ec20d0934ee2", size = 2689915, upload-time = "2024-01-10T12:27:11.456Z" }, + { url = "https://files.pythonhosted.org/packages/61/55/4e60b4b75520761ce78fe685a0a4fd18488e8fdaf5230328339176ac98ed/biopython-1.83-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:30fa323694ee640978888d0c8c4f61f951d119ccec52b1dd5fe0668cfffb6648", size = 2676879, upload-time = "2024-02-26T13:47:34.66Z" }, + { url = "https://files.pythonhosted.org/packages/30/b0/73fc250af13256c1c1db1edd17f2786fb02dda4c141d809b0d4159c6bbf1/biopython-1.83-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec82350c24cdcf34a8d4a5f189d0ff7dc025658098a60e6f0e681d24b6a1414e", size = 3100642, upload-time = "2024-01-10T12:27:16.517Z" }, + { url = "https://files.pythonhosted.org/packages/98/ed/5a342a9a3fe84a2b7699881331bb6e7296fb6332ec4c0a705ff82c9b8dde/biopython-1.83-cp39-cp39-win32.whl", hash = "sha256:e914f7161b3831d7c58db33cc5c7ca64b42c9877c5a776a8313e7a5fd494f8de", size = 2689415, upload-time = "2024-01-10T12:27:21.629Z" }, + { url = "https://files.pythonhosted.org/packages/f1/27/be0ea2b3b5a03976e122376954c3b0f761a5ba55f107ee3b050725bf1c1e/biopython-1.83-cp39-cp39-win_amd64.whl", hash = "sha256:aae1b156a76907c2abfe9d141776b0aead65695ea914eaecdf12bd1e8991f869", size = 2725199, upload-time = "2024-01-10T12:27:26.191Z" }, +] + +[[package]] +name = "biopython" +version = "1.85" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/db/ca/1d5fab0fedaf5c2f376d9746d447cdce04241c433602c3861693361ce54c/biopython-1.85.tar.gz", hash = "sha256:5dafab74059de4e78f49f6b5684eddae6e7ce46f09cfa059c1d1339e8b1ea0a6", size = 19909902, upload-time = "2025-01-15T15:06:51.997Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/de/79824470fdc5c2aedeb1bab637d24eab654a7e9fbb7070f779fd944fd1ca/biopython-1.85-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a6308053a61f3bdbb11504ece4cf24e264c6f1d6fad278f7e59e6b84b0d9a7b4", size = 2787511, upload-time = "2025-01-15T15:11:56.656Z" }, + { url = "https://files.pythonhosted.org/packages/4b/d6/3c90df2ebc4f2a522235f4391392253e528f19f5fb6a52396a2316e17064/biopython-1.85-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:434dd23e972b0c89e128f2ebbd16b38075d609184f4f1fd16368035f923019c2", size = 2765456, upload-time = "2025-01-15T15:12:05.177Z" }, + { url = "https://files.pythonhosted.org/packages/ff/d7/34233c4ee906b088b199eb2af9c4107384a547d44b5960257ef2bf2cc3c8/biopython-1.85-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a08d082e85778259a83501063871e00ba57336136403b75050eea14d523c00a", size = 3225137, upload-time = "2025-01-15T15:12:15.847Z" }, + { url = "https://files.pythonhosted.org/packages/ae/6b/e7a5ae49ef7e8f81720593db22e884c1c8e3504e0e235da0395758a5c7d0/biopython-1.85-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d93464e629950e4df87d810125dc4e904538a4344b924f340908ea5bc95db986", size = 3245258, upload-time = "2025-01-15T15:12:21.012Z" }, + { url = "https://files.pythonhosted.org/packages/68/2c/0035656dbe51ac0bbe81321172b43c37b38408f8d136abaac443e9f44b62/biopython-1.85-cp310-cp310-win32.whl", hash = "sha256:f2f45ab3f1e43fdaa697fd753148999090298623278097c19c2c3c0ba134e57c", size = 2786505, upload-time = "2025-01-15T15:12:26.545Z" }, + { url = "https://files.pythonhosted.org/packages/32/a4/f20d5830dbd8654c13e763daef429fa32ef0b2b09749ac427d045cc81976/biopython-1.85-cp310-cp310-win_amd64.whl", hash = "sha256:7c8326cd2825ba166abecaf72843b9b15823affd6cec04fde65f0d2526767da4", size = 2820961, upload-time = "2025-01-15T15:12:32.364Z" }, + { url = "https://files.pythonhosted.org/packages/c3/73/c3a1323a3fe0d07212b09c04fb903e2cbb98aebfbb58e55e8717473e1bc0/biopython-1.85-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:db8822adab0cd75a6e6ae845acf312addd8eab5f9b731c191454b961fc2c2cdc", size = 2787585, upload-time = "2025-01-15T15:12:36.927Z" }, + { url = "https://files.pythonhosted.org/packages/ff/cf/299524e896fa49beb7588143e1509cce4848572215ebafb8eea83a861820/biopython-1.85-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e2bbe58cc1a592b239ef6d68396745d3fbfaafc668ce38283871d8ff070dbab", size = 2765608, upload-time = "2025-01-15T15:12:43.853Z" }, + { url = "https://files.pythonhosted.org/packages/b1/dd/be3e95b72a35ee6d52c84412e15af828951e5c69175080d4619985fd54ce/biopython-1.85-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5916eb56df7ecd4a3babc07a48d4894c40cfb45dc18ccda1c148d0131017ce04", size = 3237552, upload-time = "2025-01-15T15:12:49.046Z" }, + { url = "https://files.pythonhosted.org/packages/25/9c/612821b946930b6caa5d795cfe4169ed6a522562eced9776914be7efaf21/biopython-1.85-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0cec8833bf3036049129944ee5382dd576dac9670c3814ff2314b52aa94f199", size = 3257287, upload-time = "2025-01-15T15:12:56.168Z" }, + { url = "https://files.pythonhosted.org/packages/a1/77/316e51dd42fd8225429574a268bdc627ce4f42067a3976c4c8c457a42023/biopython-1.85-cp311-cp311-win32.whl", hash = "sha256:cf88a4c8d8af13138be115949639a5e4a201618185a72ff09adbe175b7946b28", size = 2786411, upload-time = "2025-01-15T15:13:02.754Z" }, + { url = "https://files.pythonhosted.org/packages/f2/11/3c4e8c049b91998bbbd51ddebc6f790b1aa66211babfbf5ff008a72fb1f9/biopython-1.85-cp311-cp311-win_amd64.whl", hash = "sha256:d3c99db65d57ae4fc5034e42ac6cd8ddce069e664903f04c8a4f684d7609d6fa", size = 2820912, upload-time = "2025-01-15T15:13:10.499Z" }, + { url = "https://files.pythonhosted.org/packages/a3/25/e46f05359df7f0049c3adc5eaeb9aee0f5fbde1d959d05c78eb1de8f4d12/biopython-1.85-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cc5b981b9e3060db7c355b6145dfe3ce0b6572e1601b31211f6d742b10543874", size = 2789327, upload-time = "2025-01-15T15:13:17.086Z" }, + { url = "https://files.pythonhosted.org/packages/54/5b/8b3b029c94c63ab4c1781d141615b4a837e658422381d460c5573d5d8262/biopython-1.85-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6fe47d704c2d3afac99aeb461219ec5f00273120d2d99835dc0a9a617f520141", size = 2765805, upload-time = "2025-01-15T15:13:26.92Z" }, + { url = "https://files.pythonhosted.org/packages/69/0a/9a8a38eff03c4607b9cec8d0e08c76b346b1cee1f77bc6d00efebfc7ec83/biopython-1.85-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e54e495239e623660ad367498c2f7a1a294b1997ba603f2ceafb36fd18f0eba6", size = 3249276, upload-time = "2025-01-15T15:13:36.639Z" }, + { url = "https://files.pythonhosted.org/packages/b4/0d/b7a0f10f5100dcf51ae36ba31490169bfa45617323bd82af43e1fb0098fb/biopython-1.85-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d024ad48997ad53d53a77da24b072aaba8a550bd816af8f2e7e606a9918a3b43", size = 3268869, upload-time = "2025-01-15T15:13:44.009Z" }, + { url = "https://files.pythonhosted.org/packages/07/51/646a4b7bdb4c1153786a70d33588ed09178bfcdda0542dfdc976294f4312/biopython-1.85-cp312-cp312-win32.whl", hash = "sha256:6985e17a2911defcbd30275a12f5ed5de2765e4bc91a60439740d572fdbfdf43", size = 2787011, upload-time = "2025-01-15T15:13:48.958Z" }, + { url = "https://files.pythonhosted.org/packages/c1/84/c583fa2ac6e7d392d24ebdc5c99e95e517507de22cf143efb6cf1fc93ff5/biopython-1.85-cp312-cp312-win_amd64.whl", hash = "sha256:d6f8efb2db03f2ec115c5e8c764dbadf635e0c9ecd4c0e91fc8216c1b62f85f5", size = 2820972, upload-time = "2025-01-15T15:13:54.475Z" }, + { url = "https://files.pythonhosted.org/packages/c3/3f/65814bf221f0bfdd2633830e573ac8594794686f54110571dce98cc32fd3/biopython-1.85-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bae6f17262f20e9587d419ba5683e9dc93a31ee1858b98fa0cff203694d5b786", size = 2789844, upload-time = "2025-01-15T15:14:01.171Z" }, + { url = "https://files.pythonhosted.org/packages/be/61/1443ce34226e261c20ae4a154b2bab72c109cf31415c92c54c1aada36b00/biopython-1.85-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b1e4918e6399ab0183dd863527fec18b53b7c61b6f0ef95db84b4adfa430ce75", size = 2765767, upload-time = "2025-01-15T15:14:07.096Z" }, + { url = "https://files.pythonhosted.org/packages/53/51/bec4c763c704e2715691bb087cfab5907804a1bbef5873588698cece1a30/biopython-1.85-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86e487b6fe0f20a2b0138cb53f3d4dc26a7e4060ac4cb6fb1d19e194d445ef46", size = 3248867, upload-time = "2025-01-15T15:14:12.822Z" }, + { url = "https://files.pythonhosted.org/packages/9e/a4/552f20253a7c95988067c4955831bd17dd9b864fd5c215d15c2f63f2d415/biopython-1.85-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:327184048b5a50634ae0970119bcb8a35b76d7cefb2658a01f772915f2fb7686", size = 3268479, upload-time = "2025-01-15T15:14:20.414Z" }, + { url = "https://files.pythonhosted.org/packages/97/f4/6dfc6ef3e0997f792f93893551d4a9bf7f6052a70d34f4e1b1e5e4a359f6/biopython-1.85-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66b08905fb1b3f5194f908aaf04bbad474c4e3eaebad6d9f889a04e64dd1faf4", size = 3192338, upload-time = "2025-01-15T15:14:26.843Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/73da6588fab3a7d734118f21ac619c0a949f51d3cf7b1b8343d175c33460/biopython-1.85-cp313-cp313-win32.whl", hash = "sha256:5a236ab1e2797c7dcf1577d80fdaafabead2908bc338eaed0aa1509dab769fef", size = 2787017, upload-time = "2025-01-15T15:14:33.802Z" }, + { url = "https://files.pythonhosted.org/packages/60/ff/fe8f03ac0ccc7219e0959010750c6ac1a5b1411c91c7f4ec3a37d8313673/biopython-1.85-cp313-cp313-win_amd64.whl", hash = "sha256:1b61593765e9ebdb71d73307d55fd4b46eb976608d329ae6803c084d90ed34c7", size = 2821012, upload-time = "2025-01-15T15:14:40.825Z" }, + { url = "https://files.pythonhosted.org/packages/b3/04/9bdf0003913803d3d2239785f0f53875694dd441bd5e1a8c1581cab37747/biopython-1.85-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d76e44b46f555da2e72ac36e757efd327f7f5f690e9f00ede6f723b48538b6d5", size = 2787519, upload-time = "2025-01-15T15:14:45.867Z" }, + { url = "https://files.pythonhosted.org/packages/a4/9b/bef7dd17980eb4625c3c69411d3273e9b45d83dc7e2f1c63719607fa1026/biopython-1.85-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8469095907a17f156c76b6644829227efdf4996164f7726e6f4ca15039329776", size = 2765442, upload-time = "2025-01-15T15:14:51.469Z" }, + { url = "https://files.pythonhosted.org/packages/94/49/20f55dcfcc5487d84a6a4c84b59bcfb7ae2610f7370847b07e63e0f79cc6/biopython-1.85-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cffc15ac46688cd4cf662b24d03037234ce00b571df67be45a942264f101f990", size = 3223396, upload-time = "2025-01-15T15:14:56.519Z" }, + { url = "https://files.pythonhosted.org/packages/80/5a/6ba0066b7f38b9e7a085f2fc4c171a25ebfa64202aab0965961621f561e1/biopython-1.85-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a630b3804f6c3fcae2f9b7485d7a05425e143fc570f25babbc5a4b3d3db00d7", size = 3243475, upload-time = "2025-01-15T15:15:01.798Z" }, + { url = "https://files.pythonhosted.org/packages/90/1d/a38a9a61abd4a917fb9b95698971914d722e75027885bdb957b0fe757cd5/biopython-1.85-cp39-cp39-win32.whl", hash = "sha256:0ffb03cd982cb3a79326b84e789f2093880175c44eea10f3030c632f98de24f6", size = 2786482, upload-time = "2025-01-15T15:15:06.532Z" }, + { url = "https://files.pythonhosted.org/packages/4a/46/9cb732167a3ce4fd40920d1bec444d1739aaf18b58190f2fab8692fcaba5/biopython-1.85-cp39-cp39-win_amd64.whl", hash = "sha256:8208bf2d87ade066fafe9a63a2eb77486c233bc1bdda2cbf721ebee54715f1bf", size = 2820941, upload-time = "2025-01-15T15:15:12.311Z" }, +] + [[package]] name = "blake3" version = "1.0.5" @@ -530,6 +622,36 @@ css = [ { name = "tinycss2", version = "1.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, ] +[[package]] +name = "blinker" +version = "1.8.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/1e/57/a6a1721eff09598fb01f3c7cda070c1b6a0f12d63c83236edf79a440abcc/blinker-1.8.2.tar.gz", hash = "sha256:8f77b09d3bf7c795e969e9486f39c2c5e9c39d4ee07424be2bc594ece9642d83", size = 23161, upload-time = "2024-05-06T17:04:10.101Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bb/2a/10164ed1f31196a2f7f3799368a821765c62851ead0e630ab52b8e14b4d0/blinker-1.8.2-py3-none-any.whl", hash = "sha256:1779309f71bf239144b9399d06ae925637cf6634cf6bd131104184531bf67c01", size = 9456, upload-time = "2024-05-06T17:04:08.444Z" }, +] + +[[package]] +name = "blinker" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/21/28/9b3f50ce0e048515135495f198351908d99540d69bfdc8c1d15b73dc55ce/blinker-1.9.0.tar.gz", hash = "sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf", size = 22460, upload-time = "2024-11-08T17:25:47.436Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/cb/f2ad4230dc2eb1a74edf38f1a38b9b52277f75bef262d8908e60d957e13c/blinker-1.9.0-py3-none-any.whl", hash = "sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc", size = 8458, upload-time = "2024-11-08T17:25:46.184Z" }, +] + [[package]] name = "bqplot" version = "0.12.45" @@ -853,6 +975,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c6/c6/9963d588cc3d75d766c819e0377a168ef83cf3316a92769971527a1ad1de/colorcet-3.1.0-py3-none-any.whl", hash = "sha256:2a7d59cc8d0f7938eeedd08aad3152b5319b4ba3bcb7a612398cc17a384cb296", size = 260286, upload-time = "2024-02-29T19:15:40.494Z" }, ] +[[package]] +name = "colour" +version = "0.1.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a0/d4/5911a7618acddc3f594ddf144ecd8a03c29074a540f4494670ad8f153efe/colour-0.1.5.tar.gz", hash = "sha256:af20120fefd2afede8b001fbef2ea9da70ad7d49fafdb6489025dae8745c3aee", size = 24776, upload-time = "2017-11-19T23:20:08.015Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/74/46/e81907704ab203206769dee1385dc77e1407576ff8f50a0681d0a6b541be/colour-0.1.5-py2.py3-none-any.whl", hash = "sha256:33f6db9d564fadc16e59921a56999b79571160ce09916303d35346dddc17978c", size = 23772, upload-time = "2017-11-19T23:20:04.56Z" }, +] + [[package]] name = "comm" version = "0.2.2" @@ -1020,6 +1151,57 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" }, ] +[[package]] +name = "dash" +version = "3.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flask", version = "3.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "flask", version = "3.1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "importlib-metadata", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "importlib-metadata", version = "8.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "nest-asyncio" }, + { name = "plotly" }, + { name = "requests" }, + { name = "retrying" }, + { name = "setuptools", version = "75.3.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "setuptools", version = "80.9.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "typing-extensions", version = "4.14.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "werkzeug", version = "3.0.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "werkzeug", version = "3.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/db/7c/8569c50a4c07fabee6b2428a1515c0c92247e2127367b438a9f99d69723c/dash-3.1.1.tar.gz", hash = "sha256:916b31cec46da0a3339da0e9df9f446126aa7f293c0544e07adf9fe4ba060b18", size = 7544441, upload-time = "2025-06-30T15:31:30.518Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/df/267614cbc1003f6982d7078fd5c7591778f75e07bf36d4771fcb2eab8ff1/dash-3.1.1-py3-none-any.whl", hash = "sha256:66fff37e79c6aa114cd55aea13683d1e9afe0e3f96b35388baca95ff6cfdad23", size = 7885616, upload-time = "2025-06-30T15:31:22.768Z" }, +] + +[[package]] +name = "dash-bio" +version = "1.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "biopython", version = "1.83", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "biopython", version = "1.85", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "colour" }, + { name = "dash" }, + { name = "geoparse" }, + { name = "jsonschema", version = "4.23.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "jsonschema", version = "4.24.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pandas", version = "2.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pandas", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "parmed" }, + { name = "periodictable" }, + { name = "requests" }, + { name = "scikit-learn", version = "1.3.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "scikit-learn", version = "1.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "scikit-learn", version = "1.7.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "scipy", version = "1.10.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "scipy", version = "1.13.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7e/eb/5f12d4b0b91974e2457aaf344230010488453edadffb9e5c241eb9f02d34/dash_bio-1.0.2.tar.gz", hash = "sha256:6de28e412a37aef19429579f3285c27a5d4f21d8f387564d0698d63466259a36", size = 10214690, upload-time = "2022-03-19T01:34:19.559Z" } + [[package]] name = "dask" version = "2023.5.0" @@ -1067,6 +1249,103 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/db/47/136a5dd68a33089f96f8aa1178ccd545d325ec9ab2bb42a3038711a935c0/dask-2024.8.0-py3-none-any.whl", hash = "sha256:250ea3df30d4a25958290eec4f252850091c6cfaed82d098179c3b25bba18309", size = 1233681, upload-time = "2024-08-06T20:23:42.258Z" }, ] +[[package]] +name = "datashader" +version = "0.15.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "colorcet", marker = "python_full_version < '3.9'" }, + { name = "dask", version = "2023.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "datashape", marker = "python_full_version < '3.9'" }, + { name = "numba", version = "0.58.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pandas", version = "2.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "param", version = "2.1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pillow", version = "10.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pyct", marker = "python_full_version < '3.9'" }, + { name = "requests", marker = "python_full_version < '3.9'" }, + { name = "scipy", version = "1.10.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "toolz", marker = "python_full_version < '3.9'" }, + { name = "xarray", version = "2023.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/16/e765a52ecde43565be52cfff60d53ac4892ea89641ec24db3f0fae36f80f/datashader-0.15.2.tar.gz", hash = "sha256:9539529379287d69c10e9ab4e0b2900e1a16004d6ff06de0d84aa62c4833b1bb", size = 35653073, upload-time = "2023-08-17T10:29:12.413Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fa/ef/5b62935b9fb53828a7740fd77e94641a398c5639762f6aee0cd4ceb47bef/datashader-0.15.2-py2.py3-none-any.whl", hash = "sha256:9af96d76bc7011c60b4e76177e283efe20e060278ecd81ce7005a4d80a4dc69e", size = 18261448, upload-time = "2023-08-17T10:29:09.58Z" }, +] + +[[package]] +name = "datashader" +version = "0.17.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "colorcet", marker = "python_full_version == '3.9.*'" }, + { name = "multipledispatch", marker = "python_full_version == '3.9.*'" }, + { name = "numba", version = "0.60.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "packaging", marker = "python_full_version == '3.9.*'" }, + { name = "pandas", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "param", version = "2.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "pyct", marker = "python_full_version == '3.9.*'" }, + { name = "requests", marker = "python_full_version == '3.9.*'" }, + { name = "scipy", version = "1.13.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "toolz", marker = "python_full_version == '3.9.*'" }, + { name = "xarray", version = "2024.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8b/f9/39f5589bc8f645ba77b6afe70df82b3f79d799e721b79dcf83d91d0f396a/datashader-0.17.0.tar.gz", hash = "sha256:571aaea639e62222ba2fc49a530cffb3b1b183b6ec8ca8054978e01d2de79440", size = 18195497, upload-time = "2025-01-29T19:19:00.205Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/52/755bbab06c4d10f693abb724e82271ccf8adc98e9305a5c559867ee40c98/datashader-0.17.0-py3-none-any.whl", hash = "sha256:39421ff999294913e63d41954af955a5dece5d0c55d8fce1426043d70b22d07a", size = 18330202, upload-time = "2025-01-29T19:18:56.103Z" }, +] + +[[package]] +name = "datashader" +version = "0.18.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", +] +dependencies = [ + { name = "colorcet", marker = "python_full_version >= '3.10'" }, + { name = "multipledispatch", marker = "python_full_version >= '3.10'" }, + { name = "numba", version = "0.60.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numba", version = "0.61.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "packaging", marker = "python_full_version >= '3.10'" }, + { name = "pandas", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "param", version = "2.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "pyct", marker = "python_full_version >= '3.10'" }, + { name = "requests", marker = "python_full_version >= '3.10'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "toolz", marker = "python_full_version >= '3.10'" }, + { name = "xarray", version = "2025.6.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3a/e0/84a61b2c0d677719979b3bbd6a2b6c8d58c0600b9976da28e9306887e8ef/datashader-0.18.1.tar.gz", hash = "sha256:ad9390a9178eb03493fb67649f6570d59ccb371cf663533e0672a1826bb436b0", size = 18194615, upload-time = "2025-05-08T07:16:10.335Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/3d/f783a19cedbd5e146543775404d6976ca2162fec53ccbba5ffd8da68bd9a/datashader-0.18.1-py3-none-any.whl", hash = "sha256:5585af146e83af51c61d49168a741a6280a482072572e16573af1e5c6b600f8a", size = 18329111, upload-time = "2025-05-08T07:16:07.429Z" }, +] + +[[package]] +name = "datashape" +version = "0.5.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "multipledispatch", marker = "python_full_version < '3.9'" }, + { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "python-dateutil", marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a6/5b/95b2ed56b61e649b69c9a5b1ecb32ff0a5cd68b9f69f5aa7774540e6b444/datashape-0.5.2.tar.gz", hash = "sha256:2356ea690c3cf003c1468a243a9063144235de45b080b3652de4f3d44e57d783", size = 76465, upload-time = "2016-04-25T16:26:13.503Z" } + [[package]] name = "debugpy" version = "1.8.14" @@ -1239,6 +1518,53 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fe/55/2b98f4e82017a1ff10ffcc5e9860be23d28fd14a17440b1b1e45ae062e63/fiona-1.9.6-cp39-cp39-win_amd64.whl", hash = "sha256:f1b49d51a744874608b689f029766aa1e078dd72e94b44cf8eeef6d7bd2e9051", size = 22911558, upload-time = "2024-03-08T16:10:27.35Z" }, ] +[[package]] +name = "flask" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "blinker", version = "1.8.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "click", marker = "python_full_version < '3.9'" }, + { name = "importlib-metadata", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "itsdangerous", marker = "python_full_version < '3.9'" }, + { name = "jinja2", marker = "python_full_version < '3.9'" }, + { name = "werkzeug", version = "3.0.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/41/e1/d104c83026f8d35dfd2c261df7d64738341067526406b40190bc063e829a/flask-3.0.3.tar.gz", hash = "sha256:ceb27b0af3823ea2737928a4d99d125a06175b8512c445cbd9a9ce200ef76842", size = 676315, upload-time = "2024-04-07T19:26:11.035Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/80/ffe1da13ad9300f87c93af113edd0638c75138c42a0994becfacac078c06/flask-3.0.3-py3-none-any.whl", hash = "sha256:34e815dfaa43340d1d15a5c3a02b8476004037eb4840b34910c6e21679d288f3", size = 101735, upload-time = "2024-04-07T19:26:08.569Z" }, +] + +[[package]] +name = "flask" +version = "3.1.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "blinker", version = "1.9.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "click", marker = "python_full_version >= '3.9'" }, + { name = "importlib-metadata", version = "8.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "itsdangerous", marker = "python_full_version >= '3.9'" }, + { name = "jinja2", marker = "python_full_version >= '3.9'" }, + { name = "markupsafe", version = "3.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "werkzeug", version = "3.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c0/de/e47735752347f4128bcf354e0da07ef311a78244eba9e3dc1d4a5ab21a98/flask-3.1.1.tar.gz", hash = "sha256:284c7b8f2f58cb737f0cf1c30fd7eaf0ccfcde196099d24ecede3fc2005aa59e", size = 753440, upload-time = "2025-05-13T15:01:17.447Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/68/9d4508e893976286d2ead7f8f571314af6c2037af34853a30fd769c02e9d/flask-3.1.1-py3-none-any.whl", hash = "sha256:07aae2bb5eaf77993ef57e357491839f5fd9f4dc281593a81a9e4d79a24f295c", size = 103305, upload-time = "2025-05-13T15:01:15.591Z" }, +] + [[package]] name = "fonttools" version = "4.57.0" @@ -1485,8 +1811,8 @@ resolution-markers = [ "python_full_version == '3.10.*'", ] dependencies = [ + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "packaging", marker = "python_full_version >= '3.10'" }, { name = "pandas", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "pyogrio", marker = "python_full_version >= '3.10'" }, @@ -1498,6 +1824,24 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/be/82/79e02a0e5dd4aca81894842b9d6522624a40048a913c6384efb2987a4144/geopandas-1.1.0-py3-none-any.whl", hash = "sha256:b19b18bdc736ee05b237f5e9184211c452768a4c883f7d7f8421b0cbe1da5875", size = 338014, upload-time = "2025-06-01T16:54:29.239Z" }, ] +[[package]] +name = "geoparse" +version = "2.0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "pandas", version = "2.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pandas", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "requests" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c5/a9/0a2621953ddffd6957cd2db0f3553e6ee9ce1401bbd87167800561f8c977/geoparse-2.0.4.tar.gz", hash = "sha256:f2185310e5f7c6bd551c763476ad8a296cf7c355afa3136881e4bad5a5dad81a", size = 277953, upload-time = "2024-04-23T19:02:04.594Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/4a/b6a3e141c21e4d4b72b0c11231c1d88a8bae127f43921c5dea391b299b2a/GEOparse-2.0.4-py3-none-any.whl", hash = "sha256:5982e38d1e66314bd20ad5ad8313a6adef8cf9c29e44583aaca13261e404d622", size = 29043, upload-time = "2024-04-23T19:02:01.807Z" }, +] + [[package]] name = "ghp-import" version = "2.1.0" @@ -1510,6 +1854,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f7/ec/67fbef5d497f86283db54c22eec6f6140243aae73265799baaaa19cd17fb/ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619", size = 11034, upload-time = "2022-05-02T15:47:14.552Z" }, ] +[[package]] +name = "google" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beautifulsoup4" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/89/97/b49c69893cddea912c7a660a4b6102c6b02cd268f8c7162dd70b7c16f753/google-3.0.0.tar.gz", hash = "sha256:143530122ee5130509ad5e989f0512f7cb218b2d4eddbafbad40fd10e8d8ccbe", size = 44978, upload-time = "2020-07-11T14:50:45.678Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ac/35/17c9141c4ae21e9a29a43acdfd848e3e468a810517f862cad07977bf8fe9/google-3.0.0-py2.py3-none-any.whl", hash = "sha256:889cf695f84e4ae2c55fbc0cfdaf4c1e729417fa52ab1db0485202ba173e4935", size = 45258, upload-time = "2020-07-11T14:49:58.287Z" }, +] + [[package]] name = "griffe" version = "1.4.0" @@ -1720,6 +2076,107 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload-time = "2024-09-15T18:07:37.964Z" }, ] +[[package]] +name = "igraph" +version = "0.11.8" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "texttable", marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b8/8e/8810c9ccdef97c614423ca82fca693608db9546a1a9716671035e3630499/igraph-0.11.8.tar.gz", hash = "sha256:d7dc1404567ba3b0ea1bf8b5fa6e101617915c8ad11ea5a9f925a40bf4adad7d", size = 4568774, upload-time = "2024-10-28T12:50:33.435Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ea/00/a9a6f46fbc40dbef90be06d49502ba9cd5a65a4528818cbe44c2556cbc1a/igraph-0.11.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9a7aa8e65e7b9ddfe66f9473ce93863f40fccac26b24dc3f56e63159641c9946", size = 1948543, upload-time = "2024-10-28T12:49:17.27Z" }, + { url = "https://files.pythonhosted.org/packages/ac/c9/8e44056c29252fdb70323e8c4963d712976e052e77c3650092d15aef95f0/igraph-0.11.8-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9e953e1c5e9c5712a48df5cea93963be84aa26618cdae341b4a6b07761f56a45", size = 1753351, upload-time = "2024-10-28T12:49:19.229Z" }, + { url = "https://files.pythonhosted.org/packages/4d/79/c79e8d8d4786e3cf07c9021289a29da3ab6fbebf47309edf3c63f6d3a66f/igraph-0.11.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9baf699fdd10491e9a0842e546e630165c49c78d21ac4aaa9fb434ab4a817458", size = 2992553, upload-time = "2024-10-28T12:49:20.963Z" }, + { url = "https://files.pythonhosted.org/packages/58/14/f0473cc62ee6f407ecc8702effc21f4cdb7751de3f6e30972a1b762c111f/igraph-0.11.8-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:434e35d935675caddac3221863b43a02085c7f66030eda542f0dd9fc36e1f8ff", size = 3068373, upload-time = "2024-10-28T12:49:23.638Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e2/7f051001ea1c8b317e832b9e17a252a1a167911836151c13942254d984d6/igraph-0.11.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:745e5d7aebca7e9c16f882041718c8ceeb404a5c7201cb8685f57b0e19ebe24d", size = 3151759, upload-time = "2024-10-28T12:49:25.526Z" }, + { url = "https://files.pythonhosted.org/packages/c9/cb/95f498e61c69fb63ff22e614f81143a90443919b119d0bfc18c77b25f62d/igraph-0.11.8-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:24c97ce9f40a358a8d6ff9c27fab0e4617068aaeeb5448247308c67519b91fa2", size = 3901786, upload-time = "2024-10-28T12:49:27.665Z" }, + { url = "https://files.pythonhosted.org/packages/f3/30/5faae7d8d7a3f5e15e257778a8d505b3b5bd25c834d864570a7a0ad76ca2/igraph-0.11.8-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:c89ab68f076528736d4ed56a01983d7fd433f50b08c58bee7ded2326a4eacda1", size = 4176015, upload-time = "2024-10-28T12:49:29.954Z" }, + { url = "https://files.pythonhosted.org/packages/cd/44/25eb1f46194dc48294e7b814fff0a7785eef081d96e8411272e7b79afa64/igraph-0.11.8-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:d964fc35d65ce67b121e4dcfd7d3479fb3eeb232b6a346a217e397c7d5c5f124", size = 4064310, upload-time = "2024-10-28T12:49:32.06Z" }, + { url = "https://files.pythonhosted.org/packages/34/80/e0fb04e36bdf1f42f4f832d57dba7b06f9aab9b1d3a5bb187711cfd432c9/igraph-0.11.8-cp38-cp38-win32.whl", hash = "sha256:511b036c876fdbfc919a6a4c72b0335fd2a6a3249e5e4312b660390213875afb", size = 1597473, upload-time = "2024-10-28T12:49:33.694Z" }, + { url = "https://files.pythonhosted.org/packages/b2/a2/eb684a26c83008b9e0f8c99e6fe021f4081840a7bf458b700c70e8bd1909/igraph-0.11.8-cp38-cp38-win_amd64.whl", hash = "sha256:417b8375c1c9adbb431f7481a6cae6f9e440db81d8d4ee6fa5d2c2983148930a", size = 1976911, upload-time = "2024-10-28T12:49:35.789Z" }, + { url = "https://files.pythonhosted.org/packages/24/f4/0c39bd163de47bf2e293813a9b4ae61e34575142dde2b744151c872f9da9/igraph-0.11.8-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:92c47ceb9f4c95ff7461cd94eaec55e901dbc59f6e51f4244d2dd064f31c5491", size = 1948579, upload-time = "2024-10-28T12:49:37.89Z" }, + { url = "https://files.pythonhosted.org/packages/dd/7e/8ee4e8f03b03feca33bb9dcc730724353ac36cbe7da7b38397f8ae5cd58b/igraph-0.11.8-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:3a2afdb046b602fea71ca18aff6c72165de5002ec38d0dcf1275e34ecd0d9d02", size = 1753346, upload-time = "2024-10-28T12:49:39.808Z" }, + { url = "https://files.pythonhosted.org/packages/ea/7d/9d23c0936070f5beb99559c1064c9057374dfa435c7e3b13504d5a2c839e/igraph-0.11.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7870fb72fd9e9218940262671fb79baf281ef066aa1cd35adc092ce9ad39a038", size = 2984081, upload-time = "2024-10-28T12:49:41.448Z" }, + { url = "https://files.pythonhosted.org/packages/88/b0/210f242123b14d3ff4b36f97410f928e9bf446414c066dc8d3b8c9cad2ab/igraph-0.11.8-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c8108138ad605714761bc6d526feab54074904a99c47dcaabc269ed7b45e7650", size = 3060225, upload-time = "2024-10-28T12:49:43.112Z" }, + { url = "https://files.pythonhosted.org/packages/90/61/ec7edb5233ec2dc3d2129d94211801fb46a1c2b9beec40989707c82271f7/igraph-0.11.8-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2e3abe641622cd9c95eb152c97caa22e68257a524cc1851a099b066f8f5c5f3", size = 3142403, upload-time = "2024-10-28T12:49:45.802Z" }, + { url = "https://files.pythonhosted.org/packages/6b/89/09f1d251c48f239238cf75714e8cee8fcaacb3513620e0f59dbf1ef0c51d/igraph-0.11.8-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b546eaa9461473a65bb56a51672c6aeb898b737d5e86c3efa1b1bf520ee4b031", size = 3893169, upload-time = "2024-10-28T12:49:48Z" }, + { url = "https://files.pythonhosted.org/packages/e2/90/3e913fd9698fb91f002fc7a96b2c81bdd77bb8f60f7cb3ec922b6e218666/igraph-0.11.8-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:178ef859135ac5075a7159e6826a546b7340cf45a01a928c2a0c24c32e3dfa63", size = 4168476, upload-time = "2024-10-28T12:49:51.03Z" }, + { url = "https://files.pythonhosted.org/packages/4f/76/35ae678a78bd1d221af92f3ab98bedbce24968d9d096a2ddfde8580fbe5b/igraph-0.11.8-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a68ae7b6324e9c4cb1d04ce75b6e0f67974433fc7667895f1e25bf4f4c6fd530", size = 4056329, upload-time = "2024-10-28T12:49:53.302Z" }, + { url = "https://files.pythonhosted.org/packages/b5/f5/8c79fd8cdb3708cb404a31538c11eec4283e72dfc8cb47307966f0a3af74/igraph-0.11.8-cp39-abi3-win32.whl", hash = "sha256:cc93d2f97f93bf30c2027c31e9e1aa088a3c60cdfeb6b33e0259e4b40b4c5597", size = 1597440, upload-time = "2024-10-28T12:49:55.027Z" }, + { url = "https://files.pythonhosted.org/packages/b0/17/621d3a59430851a327421fdbec9ec8494d7fadaffc6dfdd42d4a95accbf2/igraph-0.11.8-cp39-abi3-win_amd64.whl", hash = "sha256:248831a6162130f16909c1f776cc246b48f692339ea4baca489cad4ed8dc0e13", size = 1976778, upload-time = "2024-10-28T12:49:57.022Z" }, + { url = "https://files.pythonhosted.org/packages/54/0c/d293db1a7353632387afc00ae92a2d024bf098fd9336ab98c047c8e7f87d/igraph-0.11.8-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:f0a8cad10406fba28c4b0199dfb491bcfdf1cdd3a56feeb52bb3b1cd724d04b4", size = 1936005, upload-time = "2024-10-28T12:49:58.965Z" }, + { url = "https://files.pythonhosted.org/packages/c9/e6/492b224f2d4fac430ce93cfd462dcb35fd73746baefe8f5a26e09226b312/igraph-0.11.8-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1c11127a58ac2fc8062dac9f20ef612aff1b09f5f9d3e90800c4817229d0a0bc", size = 1741196, upload-time = "2024-10-28T12:50:01.035Z" }, + { url = "https://files.pythonhosted.org/packages/bd/35/0f6bc83d217c853b527f01a73cdc970894374e627b8751363e3e017bbf0f/igraph-0.11.8-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17d79bfb170b8c195fe6bacfa1c906817e8e812417c7e6a8e15f0bcf9b0775a8", size = 2595984, upload-time = "2024-10-28T12:50:02.891Z" }, + { url = "https://files.pythonhosted.org/packages/c6/80/d94a1ff1d9502a880e175054667167f097f12bf67243bc70d22cc005bba8/igraph-0.11.8-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e9de09a26d7aae4d83338497cfd2d107d3ee3a2e9335b9db4b6c73a089e8cf47", size = 2759711, upload-time = "2024-10-28T12:50:04.758Z" }, + { url = "https://files.pythonhosted.org/packages/1a/9e/2d51720ec198b8ee9fe8d15044c0b69673876d303b7b69587c34c1a2239a/igraph-0.11.8-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6559e2c925ed2ac608103adfd1dec9ccb9a04ddc7ad1d9d2a7db46dda6b1955", size = 2764832, upload-time = "2024-10-28T12:50:07.175Z" }, + { url = "https://files.pythonhosted.org/packages/ba/77/af680ee6e6d81bf803dcc0ae9c116e7c160f86014bdd3a584bcac93077ad/igraph-0.11.8-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:6c17658b367be4f725a253678bfe799d9fe4d4e5c01ad82449cf8f2e9917937c", size = 1976705, upload-time = "2024-10-28T12:50:08.978Z" }, + { url = "https://files.pythonhosted.org/packages/f1/db/3795e7afd85a0498eb732eb915780ad7c8db2d5a11f80271a15afaa7814d/igraph-0.11.8-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d4971b4fcb005ed72f630a5f4c9bb80f10153471fe30846810f63beb3e282a19", size = 1935931, upload-time = "2024-10-28T12:50:10.442Z" }, + { url = "https://files.pythonhosted.org/packages/a4/95/c56e3cb4e8b2989818046f49e9b0b4701e982b0f3a4906db8fb6628524ef/igraph-0.11.8-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d7b1eaa3563c1e2dda940c1f154fefe9b3b257da8e8251af443cdc69a039480", size = 1741245, upload-time = "2024-10-28T12:50:12.059Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8c/7277ce5bd7fc147f8350a8298246d35d5d3e952c801fbd2a3d98e7729a9c/igraph-0.11.8-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35438d6d69a73288949a80f1eb84597e783486cd71a5cdf5862c0db7a7cbd5c5", size = 2596328, upload-time = "2024-10-28T12:50:13.643Z" }, + { url = "https://files.pythonhosted.org/packages/ed/c8/dc366f9cd89103eeef1700b5793018e59859b72fa1b1c937016eb2ad3313/igraph-0.11.8-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09c609c5d6a844582a10085c18c1c15d14b2f9fd3be59fed3feaa4be091d671f", size = 2759682, upload-time = "2024-10-28T12:50:15.482Z" }, + { url = "https://files.pythonhosted.org/packages/f2/f0/2df6f78248cf9701614f9f6e34fbd19cd81ffe7b1014099adce0c6c068a6/igraph-0.11.8-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9b836baa221027f1781ebcff05f1b23339a51a63eb70948ebaba5641efc060a", size = 2764760, upload-time = "2024-10-28T12:50:18.099Z" }, + { url = "https://files.pythonhosted.org/packages/93/75/2ed47a02df1d65d8d8148e9a600237ec0c6350b8bbab1498aa5d2a8c9ba7/igraph-0.11.8-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:caf4a178f7fb7890195c9fb358dbef0ed4a4f5323f529ea14a0f64da4c05f564", size = 1976596, upload-time = "2024-10-28T12:50:19.979Z" }, + { url = "https://files.pythonhosted.org/packages/5e/90/1bf6f93e561ec7bfb69af93ecc395eb6b3e9fded57529f4bf38b3eb6e7a4/igraph-0.11.8-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e702a436935d3e127f6affff397ebbab48b522434bd8d6f15cfb1ab5d940e7d5", size = 1935989, upload-time = "2024-10-28T12:50:21.609Z" }, + { url = "https://files.pythonhosted.org/packages/a6/6b/e4a79c2063d979f93204fdda35adea6e1b04750a3a6d439b190481a7e15f/igraph-0.11.8-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5bcad4d052785fe9b076f5aca6e870e2fae35373b09867477adc7307f2692a36", size = 1741176, upload-time = "2024-10-28T12:50:23.125Z" }, + { url = "https://files.pythonhosted.org/packages/c3/9f/bcb7e522133ebbf9d6ba0ac7923ce01508c51fc5b9487b368c52de00d624/igraph-0.11.8-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d420cd48353e7c138bc39a118c3a01dc41aeba38486cca1524a960a755016171", size = 2596033, upload-time = "2024-10-28T12:50:25.172Z" }, + { url = "https://files.pythonhosted.org/packages/21/22/430bbc64d3efc8937a71436c3691c5ac11f21fd5c34b1c7308388e716a72/igraph-0.11.8-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ae9486a52da72d2ab634b92e17a969dc4e8e83303384329b903830ad67315e5", size = 2759696, upload-time = "2024-10-28T12:50:27.228Z" }, + { url = "https://files.pythonhosted.org/packages/f4/63/91f79e74fc78853842e46fc8883587e16d275f7b3cc4349ee80b2e2bf876/igraph-0.11.8-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4e36a4f8a40bb4ffc8aa08c1cfe6fa3dfa78393cf65165bd9d59e6ac24a2468", size = 2764848, upload-time = "2024-10-28T12:50:29.22Z" }, + { url = "https://files.pythonhosted.org/packages/e9/0c/465c20825f70c4f0c2fc774a9f291df91f81df18132e1f433f5b23fc9f75/igraph-0.11.8-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:f4048b843be54a77bc7206ce8c58825a9b1b42748c1713699034dc4f7df36f73", size = 1976704, upload-time = "2024-10-28T12:50:30.82Z" }, +] + +[[package]] +name = "igraph" +version = "0.11.9" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "texttable", marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fa/a2/ed3f1513b14e98f73ad29a2bbd2898aef7ceac739e9eff1b3b6a9126dfe6/igraph-0.11.9.tar.gz", hash = "sha256:c57ce44873abcfcfd1d61d7d261e416d352186958e7b5d299cf244efa6757816", size = 4587322, upload-time = "2025-06-11T09:27:49.958Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/84/bbcde5833e2685b722ce04ed2ec542cff49f12b4d6a3aa27d23c4febd4db/igraph-0.11.9-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ef30a8eb6329a71211652223cad900dc42bc7fdb44d9e942e991181232906ac2", size = 1936209, upload-time = "2025-06-11T09:24:32.932Z" }, + { url = "https://files.pythonhosted.org/packages/15/47/6e94649b7fe12f3a82e75ef0f35fb0a2d860b13aafcfcfcdf467d50e9208/igraph-0.11.9-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:4b3224b2b74e9dfac1271dc6f2e1061d13492f91198d05e1b8b696b994e5e269", size = 1752923, upload-time = "2025-06-11T09:24:36.256Z" }, + { url = "https://files.pythonhosted.org/packages/2c/21/8649eebbe101ecc704863a05814ccca90f578afcfd990038c739027211e9/igraph-0.11.9-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:adf7d7200c2e11a3b1122786f77cee96072c593fd62794aadb5ce546a24fa791", size = 4133376, upload-time = "2025-06-11T09:24:40.65Z" }, + { url = "https://files.pythonhosted.org/packages/7c/63/c4e561d5947d728dc1dd244bd86c1c2d01bd1e1b14ec04e6dc9bac1e601c/igraph-0.11.9-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78a7f3a490f3f6a8aab99948e3e62ae81fc1e8a8aa07e326b09f4e570c042e79", size = 4285168, upload-time = "2025-06-11T09:24:46.84Z" }, + { url = "https://files.pythonhosted.org/packages/b8/79/a21fec50837ee429fd0cb675b93cd7db80f687a9eeab53f63ea02f0a5a99/igraph-0.11.9-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:773201c9eafef668be11d8966cf2d7114d34757cd9cfdbd8c190fefcd341220b", size = 4372306, upload-time = "2025-06-11T09:24:51.698Z" }, + { url = "https://files.pythonhosted.org/packages/8a/01/42bd858f01aa45f769f4edd0a643cf333f5a2b36efcca38f228af1cd02bc/igraph-0.11.9-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9bc6fb4316bc79bd0d800dd0186921ef62da971be147861872be90242acbae7d", size = 5250489, upload-time = "2025-06-11T09:24:57.376Z" }, + { url = "https://files.pythonhosted.org/packages/39/b5/44c6cd220baa6213a9edcc097aa9b2f4867d4f1f9b321369aa4820cb4790/igraph-0.11.9-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:e45d03bfb931b73f323b531fc0d87235ac96c41a64363b243677034576cf411b", size = 5638683, upload-time = "2025-06-11T09:25:03.056Z" }, + { url = "https://files.pythonhosted.org/packages/ef/06/91761a416d52ba7049dffa8bfc6eb14b41c5c7f926c6d02a3532030f59d6/igraph-0.11.9-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:157b4a836628ca55c6422098bf34336006c1d517fc86fa0e89af3a233e3baa30", size = 5512189, upload-time = "2025-06-11T09:25:09Z" }, + { url = "https://files.pythonhosted.org/packages/01/1b/b330e61dc2afb2f00bf152d1b570267741e2465a460a4f9a6e4c41057cbb/igraph-0.11.9-cp39-abi3-win32.whl", hash = "sha256:1fd67a0771b8ce70bef361557bdeb6ca7a1012f9fb8368eba86967deeb99a110", size = 2500729, upload-time = "2025-06-11T09:26:31.389Z" }, + { url = "https://files.pythonhosted.org/packages/1c/36/8de9605ba946f9ce82558e753ab08c4705124a92df561df83ac551c6e36a/igraph-0.11.9-cp39-abi3-win_amd64.whl", hash = "sha256:09c7d49c7759e058bf2526bbac54dd1f9e0725ff64352f01545db59c09de88cf", size = 2927497, upload-time = "2025-06-11T09:26:23.7Z" }, + { url = "https://files.pythonhosted.org/packages/e4/71/608f07217246858d5c73a68488bef60b819e502a3287e34a77743109011c/igraph-0.11.9-cp39-abi3-win_arm64.whl", hash = "sha256:8acca4f2463f4de572471cca2d46bb3ef5b3082bc125b9ec30e8032b177951df", size = 2568065, upload-time = "2025-06-11T09:26:27.491Z" }, + { url = "https://files.pythonhosted.org/packages/3e/1b/e1d03f3173f7b8b3b837f3d8ffbdbcdd942ab2e0e5ad824f29f5cce40af1/igraph-0.11.9-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:63f5953619b308b0afbb3ceb5c7b7ab3ee847eca348dfca7d7eb93290568ce02", size = 1922428, upload-time = "2025-06-11T09:26:35.023Z" }, + { url = "https://files.pythonhosted.org/packages/d2/a1/8c7619d74c587b793fcdff80424c0bc62dfaa8604510b5bceb3329ed4ce7/igraph-0.11.9-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:a2c4384d1ea1fb071c1b367069783dc195919596d9bb73fef1eddf97cfb5613b", size = 1739360, upload-time = "2025-06-11T09:26:38.68Z" }, + { url = "https://files.pythonhosted.org/packages/53/5b/9403e5e90e496799226f5a0ea99582b41c9b97c99fd34256a33a6956cf13/igraph-0.11.9-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02e2e6747d3c70fcb539bc29b80377d63859f30db8a9b4bc6f440d317c07a47b", size = 2599045, upload-time = "2025-06-11T09:26:42.147Z" }, + { url = "https://files.pythonhosted.org/packages/8b/f8/c2b3256f6aa986a4204bcdfd0be0d4fe44fdec66a14573ff1b16bb7d0e28/igraph-0.11.9-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f74dd13b36fd5a831632be0e8f0b3b1519067c479a820f54168e70ac0b71b89d", size = 2759711, upload-time = "2025-06-11T09:26:45.573Z" }, + { url = "https://files.pythonhosted.org/packages/1c/23/839f946aea34856ba0dd96320eb0c3cec1b52ab2f1ab7351d607a79ef8ca/igraph-0.11.9-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abb5097c402e82a8bb074ab9df2e45e0c9bcd76bb36a3a839e7cd4d71143bbba", size = 2765467, upload-time = "2025-06-11T09:26:49.147Z" }, + { url = "https://files.pythonhosted.org/packages/83/fa/cbb7226191a54238930d66701293cf66e5d0798b89b0c08d47812c8c79c8/igraph-0.11.9-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:b0561914fc415dc2fa4194c39585336dde42c3cf5fafd1b404f5e847d055fa17", size = 2926684, upload-time = "2025-06-11T09:26:53.242Z" }, + { url = "https://files.pythonhosted.org/packages/cc/a6/9dbdb3063139102f899b30ce4b4aab30db9f741519432f876a75f3fce044/igraph-0.11.9-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7a38e20a45499ae258c36ff27a32e9afeac777bac0c94c3511af75503f37523f", size = 1922237, upload-time = "2025-06-11T09:26:56.807Z" }, + { url = "https://files.pythonhosted.org/packages/74/92/0d48d40febb259ef9ec8e0ba3de6c23169469a1deabd00377533aae80970/igraph-0.11.9-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:1bbf2b7a928441184ec9fc1f771ddf61bcd6a3f812a8861cab465c5c985ccc6c", size = 1739476, upload-time = "2025-06-11T09:27:01.472Z" }, + { url = "https://files.pythonhosted.org/packages/1a/21/ae0f653be1e25110f536ffd37948a08b4f1de2dfeb804dcdbde793289afb/igraph-0.11.9-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8fb6db6056f90364436f32439b3fc23947d469de0894240ed94dfdecc2eb3c89", size = 2599570, upload-time = "2025-06-11T09:27:05.443Z" }, + { url = "https://files.pythonhosted.org/packages/98/6f/b5bc2d59aafcf6f3a5524cf11b5c9eb91fd2ed34895ed63e5fb45209fec5/igraph-0.11.9-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f4c6ff8fea88f4b7f6202f6ff939853e09c383b2a35c58aa05f374b66fe46c7c", size = 2759495, upload-time = "2025-06-11T09:27:09.777Z" }, + { url = "https://files.pythonhosted.org/packages/01/81/54ed84a43b796f943d78ad28582c6a85b645870e38d752d31497bc4179a2/igraph-0.11.9-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9911a7c5b256c0e7d50f958bbabba47a5eeddde67b47271a05e0850de129e2fc", size = 2765372, upload-time = "2025-06-11T09:27:14.246Z" }, + { url = "https://files.pythonhosted.org/packages/d7/91/c1b597004248bd7ce6c9593465308a1a5f0467c4ec4056aa51a6c017a669/igraph-0.11.9-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:f35694100691bf8ef0c370615d87bcf1d6c0f15e356269c6357f8f78a9f1acea", size = 2926242, upload-time = "2025-06-11T09:27:18.553Z" }, + { url = "https://files.pythonhosted.org/packages/4d/02/46932458476aedc3c447ab7db471afafc2d4fee8654044eb3cdebffe4f63/igraph-0.11.9-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:03114d751b2bc6171259e52d773682b1d771a4b31acc345574f187c6c12ea943", size = 1922276, upload-time = "2025-06-11T09:27:21.959Z" }, + { url = "https://files.pythonhosted.org/packages/bc/83/00c6f25a926400aec3ebb5794a3dba6d4ae71e81baff077f5adcb2ae9f87/igraph-0.11.9-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:3dc836e4fddb040eae297bdf56cf0158279f534519a27b35a3c4112bfd2b5244", size = 1739380, upload-time = "2025-06-11T09:27:25.402Z" }, + { url = "https://files.pythonhosted.org/packages/41/78/81cdd32c1b3cd61f012d107ba1ddf47ea0fa42ec7777a8aeec31eb496969/igraph-0.11.9-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8fe5f5a55ea211219278da3b74ecbd86c57fedadead51481141853b7594b33f0", size = 2599206, upload-time = "2025-06-11T09:27:30.18Z" }, + { url = "https://files.pythonhosted.org/packages/5d/df/05773ff7df3499618078a1b484ffc85cb0b5477f1640a681bc6391547cb3/igraph-0.11.9-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:06434f9d31300a7b7174c922e6940ffa4ca5db46288ca654a3c923729f5c4ab0", size = 2759479, upload-time = "2025-06-11T09:27:35.368Z" }, + { url = "https://files.pythonhosted.org/packages/84/68/c8744433ad447fedf74768825d7e1a4d3e9952124e24ad2b0a716f118ca9/igraph-0.11.9-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:461bcc31f1ffec4f60881c4cc79ed3f732c7c98b405f97ff3f84d748452a279d", size = 2765326, upload-time = "2025-06-11T09:27:39.957Z" }, + { url = "https://files.pythonhosted.org/packages/f8/6a/728699748f7f7ccdb5e0f4a881277161d2ff55a4465d3591959d8aee7a0f/igraph-0.11.9-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b948b2e302585c5ed23ef4a7e8caa8ca4cc946106ff8d9b197d16c49d929b777", size = 2926740, upload-time = "2025-06-11T09:27:44.026Z" }, +] + [[package]] name = "imageio" version = "2.35.1" @@ -1750,9 +2207,8 @@ resolution-markers = [ "python_full_version == '3.9.*'", ] dependencies = [ - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "pillow", version = "11.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0c/47/57e897fb7094afb2d26e8b2e4af9a45c7cf1a405acdeeca001fdf2c98501/imageio-2.37.0.tar.gz", hash = "sha256:71b57b3669666272c818497aebba2b4c5f20d5b37c81720e5e1a56d59c492996", size = 389963, upload-time = "2025-01-20T02:42:37.089Z" } @@ -1783,11 +2239,13 @@ name = "importlib-metadata" version = "8.7.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", ] dependencies = [ - { name = "zipp", version = "3.23.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.11'" }, + { name = "zipp", version = "3.23.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000", size = 56641, upload-time = "2025-04-27T15:29:01.736Z" } wheels = [ @@ -2175,6 +2633,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7b/55/e5326141505c5d5e34c5e0935d2908a74e4561eca44108fbfb9c13d2911a/isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042", size = 11321, upload-time = "2020-11-01T10:59:58.02Z" }, ] +[[package]] +name = "itsdangerous" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9c/cb/8ac0172223afbccb63986cc25049b154ecfb5e85932587206f42317be31d/itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173", size = 54410, upload-time = "2024-04-16T21:28:15.614Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/96/92447566d16df59b2a776c0fb82dbc4d9e07cd95062562af01e408583fc4/itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef", size = 16234, upload-time = "2024-04-16T21:28:14.499Z" }, +] + [[package]] name = "jedi" version = "0.19.2" @@ -2200,6 +2667,36 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, ] +[[package]] +name = "joblib" +version = "1.4.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/64/33/60135848598c076ce4b231e1b1895170f45fbcaeaa2c9d5e38b04db70c35/joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e", size = 2116621, upload-time = "2024-05-02T12:15:05.765Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/29/df4b9b42f2be0b623cbd5e2140cafcaa2bef0759a00b7b70104dcfe2fb51/joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6", size = 301817, upload-time = "2024-05-02T12:15:00.765Z" }, +] + +[[package]] +name = "joblib" +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/dc/fe/0f5a938c54105553436dbff7a61dc4fed4b1b2c98852f8833beaf4d5968f/joblib-1.5.1.tar.gz", hash = "sha256:f4f86e351f39fe3d0d32a9f2c3d8af1ee4cec285aafcb27003dda5205576b444", size = 330475, upload-time = "2025-05-23T12:04:37.097Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7d/4f/1195bbac8e0c2acc5f740661631d8d750dc38d4a32b23ee5df3cde6f4e0d/joblib-1.5.1-py3-none-any.whl", hash = "sha256:4719a31f054c7d766948dcd83e9613686b27114f190f717cec7eaa2084f8a74a", size = 307746, upload-time = "2025-05-23T12:04:35.124Z" }, +] + [[package]] name = "json5" version = "0.12.0" @@ -2853,6 +3350,8 @@ name = "llvmlite" version = "0.43.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", "python_full_version == '3.9.*'", ] sdist = { url = "https://files.pythonhosted.org/packages/9f/3d/f513755f285db51ab363a53e898b85562e950f79a2e6767a364530c2f645/llvmlite-0.43.0.tar.gz", hash = "sha256:ae2b5b5c3ef67354824fb75517c8db5fbe93bc02cd9671f3c62271626bc041d5", size = 157069, upload-time = "2024-06-13T18:09:32.641Z" } @@ -2879,6 +3378,37 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/df/41/73cc26a2634b538cfe813f618c91e7e9960b8c163f8f0c94a2b0f008b9da/llvmlite-0.43.0-cp39-cp39-win_amd64.whl", hash = "sha256:47e147cdda9037f94b399bf03bfd8a6b6b1f2f90be94a454e3386f006455a9b4", size = 28123489, upload-time = "2024-06-13T18:09:29.78Z" }, ] +[[package]] +name = "llvmlite" +version = "0.44.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.10.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/89/6a/95a3d3610d5c75293d5dbbb2a76480d5d4eeba641557b69fe90af6c5b84e/llvmlite-0.44.0.tar.gz", hash = "sha256:07667d66a5d150abed9157ab6c0b9393c9356f229784a4385c02f99e94fc94d4", size = 171880, upload-time = "2025-01-20T11:14:41.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/75/d4863ddfd8ab5f6e70f4504cf8cc37f4e986ec6910f4ef8502bb7d3c1c71/llvmlite-0.44.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:9fbadbfba8422123bab5535b293da1cf72f9f478a65645ecd73e781f962ca614", size = 28132306, upload-time = "2025-01-20T11:12:18.634Z" }, + { url = "https://files.pythonhosted.org/packages/37/d9/6e8943e1515d2f1003e8278819ec03e4e653e2eeb71e4d00de6cfe59424e/llvmlite-0.44.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cccf8eb28f24840f2689fb1a45f9c0f7e582dd24e088dcf96e424834af11f791", size = 26201096, upload-time = "2025-01-20T11:12:24.544Z" }, + { url = "https://files.pythonhosted.org/packages/aa/46/8ffbc114def88cc698906bf5acab54ca9fdf9214fe04aed0e71731fb3688/llvmlite-0.44.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7202b678cdf904823c764ee0fe2dfe38a76981f4c1e51715b4cb5abb6cf1d9e8", size = 42361859, upload-time = "2025-01-20T11:12:31.839Z" }, + { url = "https://files.pythonhosted.org/packages/30/1c/9366b29ab050a726af13ebaae8d0dff00c3c58562261c79c635ad4f5eb71/llvmlite-0.44.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:40526fb5e313d7b96bda4cbb2c85cd5374e04d80732dd36a282d72a560bb6408", size = 41184199, upload-time = "2025-01-20T11:12:40.049Z" }, + { url = "https://files.pythonhosted.org/packages/69/07/35e7c594b021ecb1938540f5bce543ddd8713cff97f71d81f021221edc1b/llvmlite-0.44.0-cp310-cp310-win_amd64.whl", hash = "sha256:41e3839150db4330e1b2716c0be3b5c4672525b4c9005e17c7597f835f351ce2", size = 30332381, upload-time = "2025-01-20T11:12:47.054Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e2/86b245397052386595ad726f9742e5223d7aea999b18c518a50e96c3aca4/llvmlite-0.44.0-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:eed7d5f29136bda63b6d7804c279e2b72e08c952b7c5df61f45db408e0ee52f3", size = 28132305, upload-time = "2025-01-20T11:12:53.936Z" }, + { url = "https://files.pythonhosted.org/packages/ff/ec/506902dc6870249fbe2466d9cf66d531265d0f3a1157213c8f986250c033/llvmlite-0.44.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ace564d9fa44bb91eb6e6d8e7754977783c68e90a471ea7ce913bff30bd62427", size = 26201090, upload-time = "2025-01-20T11:12:59.847Z" }, + { url = "https://files.pythonhosted.org/packages/99/fe/d030f1849ebb1f394bb3f7adad5e729b634fb100515594aca25c354ffc62/llvmlite-0.44.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5d22c3bfc842668168a786af4205ec8e3ad29fb1bc03fd11fd48460d0df64c1", size = 42361858, upload-time = "2025-01-20T11:13:07.623Z" }, + { url = "https://files.pythonhosted.org/packages/d7/7a/ce6174664b9077fc673d172e4c888cb0b128e707e306bc33fff8c2035f0d/llvmlite-0.44.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f01a394e9c9b7b1d4e63c327b096d10f6f0ed149ef53d38a09b3749dcf8c9610", size = 41184200, upload-time = "2025-01-20T11:13:20.058Z" }, + { url = "https://files.pythonhosted.org/packages/5f/c6/258801143975a6d09a373f2641237992496e15567b907a4d401839d671b8/llvmlite-0.44.0-cp311-cp311-win_amd64.whl", hash = "sha256:d8489634d43c20cd0ad71330dde1d5bc7b9966937a263ff1ec1cebb90dc50955", size = 30331193, upload-time = "2025-01-20T11:13:26.976Z" }, + { url = "https://files.pythonhosted.org/packages/15/86/e3c3195b92e6e492458f16d233e58a1a812aa2bfbef9bdd0fbafcec85c60/llvmlite-0.44.0-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:1d671a56acf725bf1b531d5ef76b86660a5ab8ef19bb6a46064a705c6ca80aad", size = 28132297, upload-time = "2025-01-20T11:13:32.57Z" }, + { url = "https://files.pythonhosted.org/packages/d6/53/373b6b8be67b9221d12b24125fd0ec56b1078b660eeae266ec388a6ac9a0/llvmlite-0.44.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f79a728e0435493611c9f405168682bb75ffd1fbe6fc360733b850c80a026db", size = 26201105, upload-time = "2025-01-20T11:13:38.744Z" }, + { url = "https://files.pythonhosted.org/packages/cb/da/8341fd3056419441286c8e26bf436923021005ece0bff5f41906476ae514/llvmlite-0.44.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0143a5ef336da14deaa8ec26c5449ad5b6a2b564df82fcef4be040b9cacfea9", size = 42361901, upload-time = "2025-01-20T11:13:46.711Z" }, + { url = "https://files.pythonhosted.org/packages/53/ad/d79349dc07b8a395a99153d7ce8b01d6fcdc9f8231355a5df55ded649b61/llvmlite-0.44.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d752f89e31b66db6f8da06df8b39f9b91e78c5feea1bf9e8c1fba1d1c24c065d", size = 41184247, upload-time = "2025-01-20T11:13:56.159Z" }, + { url = "https://files.pythonhosted.org/packages/e2/3b/a9a17366af80127bd09decbe2a54d8974b6d8b274b39bf47fbaedeec6307/llvmlite-0.44.0-cp312-cp312-win_amd64.whl", hash = "sha256:eae7e2d4ca8f88f89d315b48c6b741dcb925d6a1042da694aa16ab3dd4cbd3a1", size = 30332380, upload-time = "2025-01-20T11:14:02.442Z" }, + { url = "https://files.pythonhosted.org/packages/89/24/4c0ca705a717514c2092b18476e7a12c74d34d875e05e4d742618ebbf449/llvmlite-0.44.0-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:319bddd44e5f71ae2689859b7203080716448a3cd1128fb144fe5c055219d516", size = 28132306, upload-time = "2025-01-20T11:14:09.035Z" }, + { url = "https://files.pythonhosted.org/packages/01/cf/1dd5a60ba6aee7122ab9243fd614abcf22f36b0437cbbe1ccf1e3391461c/llvmlite-0.44.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9c58867118bad04a0bb22a2e0068c693719658105e40009ffe95c7000fcde88e", size = 26201090, upload-time = "2025-01-20T11:14:15.401Z" }, + { url = "https://files.pythonhosted.org/packages/d2/1b/656f5a357de7135a3777bd735cc7c9b8f23b4d37465505bd0eaf4be9befe/llvmlite-0.44.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46224058b13c96af1365290bdfebe9a6264ae62fb79b2b55693deed11657a8bf", size = 42361904, upload-time = "2025-01-20T11:14:22.949Z" }, + { url = "https://files.pythonhosted.org/packages/d8/e1/12c5f20cb9168fb3464a34310411d5ad86e4163c8ff2d14a2b57e5cc6bac/llvmlite-0.44.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa0097052c32bf721a4efc03bd109d335dfa57d9bffb3d4c24cc680711b8b4fc", size = 41184245, upload-time = "2025-01-20T11:14:31.731Z" }, + { url = "https://files.pythonhosted.org/packages/d0/81/e66fc86539293282fd9cb7c9417438e897f369e79ffb62e1ae5e5154d4dd/llvmlite-0.44.0-cp313-cp313-win_amd64.whl", hash = "sha256:2fb7c4f2fb86cbae6dca3db9ab203eeea0e22d73b99bc2341cdf9de93612e930", size = 30331193, upload-time = "2025-01-20T11:14:38.578Z" }, +] + [[package]] name = "locket" version = "1.0.0" @@ -3575,6 +4105,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2b/9f/7ba6f94fc1e9ac3d2b853fdff3035fb2fa5afbed898c4a72b8a020610594/more_itertools-10.7.0-py3-none-any.whl", hash = "sha256:d43980384673cb07d2f7d2d918c616b30c659c089ee23953f601d6609c67510e", size = 65278, upload-time = "2025-04-22T14:17:40.49Z" }, ] +[[package]] +name = "multipledispatch" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/3e/a62c3b824c7dec33c4a1578bcc842e6c30300051033a4e5975ed86cc2536/multipledispatch-1.0.0.tar.gz", hash = "sha256:5c839915465c68206c3e9c473357908216c28383b425361e5d144594bf85a7e0", size = 12385, upload-time = "2023-06-27T16:45:11.074Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/c0/00c9809d8b9346eb238a6bbd5f83e846a4ce4503da94a4c08cb7284c325b/multipledispatch-1.0.0-py3-none-any.whl", hash = "sha256:0c53cd8b077546da4e48869f49b13164bebafd0c2a5afceb6bb6a316e7fb46e4", size = 12818, upload-time = "2023-06-27T16:45:09.418Z" }, +] + [[package]] name = "narwhals" version = "1.42.0" @@ -3834,11 +4373,13 @@ name = "numba" version = "0.60.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", "python_full_version == '3.9.*'", ] dependencies = [ - { name = "llvmlite", version = "0.43.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "llvmlite", version = "0.43.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/3c/93/2849300a9184775ba274aba6f82f303343669b0592b7bb0849ea713dabb0/numba-0.60.0.tar.gz", hash = "sha256:5df6158e5584eece5fc83294b949fd30b9f1125df7708862205217e068aabf16", size = 2702171, upload-time = "2024-06-13T18:11:19.869Z" } wheels = [ @@ -3864,6 +4405,41 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/01/01/8b7b670c77c5ea0e47e283d82332969bf672ab6410d0b2610cac5b7a3ded/numba-0.60.0-cp39-cp39-win_amd64.whl", hash = "sha256:3031547a015710140e8c87226b4cfe927cac199835e5bf7d4fe5cb64e814e3ab", size = 2686978, upload-time = "2024-06-13T18:11:17.765Z" }, ] +[[package]] +name = "numba" +version = "0.61.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.10.*'", +] +dependencies = [ + { name = "llvmlite", version = "0.44.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1c/a0/e21f57604304aa03ebb8e098429222722ad99176a4f979d34af1d1ee80da/numba-0.61.2.tar.gz", hash = "sha256:8750ee147940a6637b80ecf7f95062185ad8726c8c28a2295b8ec1160a196f7d", size = 2820615, upload-time = "2025-04-09T02:58:07.659Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/ca/f470be59552ccbf9531d2d383b67ae0b9b524d435fb4a0d229fef135116e/numba-0.61.2-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:cf9f9fc00d6eca0c23fc840817ce9f439b9f03c8f03d6246c0e7f0cb15b7162a", size = 2775663, upload-time = "2025-04-09T02:57:34.143Z" }, + { url = "https://files.pythonhosted.org/packages/f5/13/3bdf52609c80d460a3b4acfb9fdb3817e392875c0d6270cf3fd9546f138b/numba-0.61.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ea0247617edcb5dd61f6106a56255baab031acc4257bddaeddb3a1003b4ca3fd", size = 2778344, upload-time = "2025-04-09T02:57:36.609Z" }, + { url = "https://files.pythonhosted.org/packages/e2/7d/bfb2805bcfbd479f04f835241ecf28519f6e3609912e3a985aed45e21370/numba-0.61.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ae8c7a522c26215d5f62ebec436e3d341f7f590079245a2f1008dfd498cc1642", size = 3824054, upload-time = "2025-04-09T02:57:38.162Z" }, + { url = "https://files.pythonhosted.org/packages/e3/27/797b2004745c92955470c73c82f0e300cf033c791f45bdecb4b33b12bdea/numba-0.61.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd1e74609855aa43661edffca37346e4e8462f6903889917e9f41db40907daa2", size = 3518531, upload-time = "2025-04-09T02:57:39.709Z" }, + { url = "https://files.pythonhosted.org/packages/b1/c6/c2fb11e50482cb310afae87a997707f6c7d8a48967b9696271347441f650/numba-0.61.2-cp310-cp310-win_amd64.whl", hash = "sha256:ae45830b129c6137294093b269ef0a22998ccc27bf7cf096ab8dcf7bca8946f9", size = 2831612, upload-time = "2025-04-09T02:57:41.559Z" }, + { url = "https://files.pythonhosted.org/packages/3f/97/c99d1056aed767503c228f7099dc11c402906b42a4757fec2819329abb98/numba-0.61.2-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:efd3db391df53aaa5cfbee189b6c910a5b471488749fd6606c3f33fc984c2ae2", size = 2775825, upload-time = "2025-04-09T02:57:43.442Z" }, + { url = "https://files.pythonhosted.org/packages/95/9e/63c549f37136e892f006260c3e2613d09d5120672378191f2dc387ba65a2/numba-0.61.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:49c980e4171948ffebf6b9a2520ea81feed113c1f4890747ba7f59e74be84b1b", size = 2778695, upload-time = "2025-04-09T02:57:44.968Z" }, + { url = "https://files.pythonhosted.org/packages/97/c8/8740616c8436c86c1b9a62e72cb891177d2c34c2d24ddcde4c390371bf4c/numba-0.61.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3945615cd73c2c7eba2a85ccc9c1730c21cd3958bfcf5a44302abae0fb07bb60", size = 3829227, upload-time = "2025-04-09T02:57:46.63Z" }, + { url = "https://files.pythonhosted.org/packages/fc/06/66e99ae06507c31d15ff3ecd1f108f2f59e18b6e08662cd5f8a5853fbd18/numba-0.61.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbfdf4eca202cebade0b7d43896978e146f39398909a42941c9303f82f403a18", size = 3523422, upload-time = "2025-04-09T02:57:48.222Z" }, + { url = "https://files.pythonhosted.org/packages/0f/a4/2b309a6a9f6d4d8cfba583401c7c2f9ff887adb5d54d8e2e130274c0973f/numba-0.61.2-cp311-cp311-win_amd64.whl", hash = "sha256:76bcec9f46259cedf888041b9886e257ae101c6268261b19fda8cfbc52bec9d1", size = 2831505, upload-time = "2025-04-09T02:57:50.108Z" }, + { url = "https://files.pythonhosted.org/packages/b4/a0/c6b7b9c615cfa3b98c4c63f4316e3f6b3bbe2387740277006551784218cd/numba-0.61.2-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:34fba9406078bac7ab052efbf0d13939426c753ad72946baaa5bf9ae0ebb8dd2", size = 2776626, upload-time = "2025-04-09T02:57:51.857Z" }, + { url = "https://files.pythonhosted.org/packages/92/4a/fe4e3c2ecad72d88f5f8cd04e7f7cff49e718398a2fac02d2947480a00ca/numba-0.61.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4ddce10009bc097b080fc96876d14c051cc0c7679e99de3e0af59014dab7dfe8", size = 2779287, upload-time = "2025-04-09T02:57:53.658Z" }, + { url = "https://files.pythonhosted.org/packages/9a/2d/e518df036feab381c23a624dac47f8445ac55686ec7f11083655eb707da3/numba-0.61.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b1bb509d01f23d70325d3a5a0e237cbc9544dd50e50588bc581ba860c213546", size = 3885928, upload-time = "2025-04-09T02:57:55.206Z" }, + { url = "https://files.pythonhosted.org/packages/10/0f/23cced68ead67b75d77cfcca3df4991d1855c897ee0ff3fe25a56ed82108/numba-0.61.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:48a53a3de8f8793526cbe330f2a39fe9a6638efcbf11bd63f3d2f9757ae345cd", size = 3577115, upload-time = "2025-04-09T02:57:56.818Z" }, + { url = "https://files.pythonhosted.org/packages/68/1d/ddb3e704c5a8fb90142bf9dc195c27db02a08a99f037395503bfbc1d14b3/numba-0.61.2-cp312-cp312-win_amd64.whl", hash = "sha256:97cf4f12c728cf77c9c1d7c23707e4d8fb4632b46275f8f3397de33e5877af18", size = 2831929, upload-time = "2025-04-09T02:57:58.45Z" }, + { url = "https://files.pythonhosted.org/packages/0b/f3/0fe4c1b1f2569e8a18ad90c159298d862f96c3964392a20d74fc628aee44/numba-0.61.2-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:3a10a8fc9afac40b1eac55717cece1b8b1ac0b946f5065c89e00bde646b5b154", size = 2771785, upload-time = "2025-04-09T02:57:59.96Z" }, + { url = "https://files.pythonhosted.org/packages/e9/71/91b277d712e46bd5059f8a5866862ed1116091a7cb03bd2704ba8ebe015f/numba-0.61.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7d3bcada3c9afba3bed413fba45845f2fb9cd0d2b27dd58a1be90257e293d140", size = 2773289, upload-time = "2025-04-09T02:58:01.435Z" }, + { url = "https://files.pythonhosted.org/packages/0d/e0/5ea04e7ad2c39288c0f0f9e8d47638ad70f28e275d092733b5817cf243c9/numba-0.61.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bdbca73ad81fa196bd53dc12e3aaf1564ae036e0c125f237c7644fe64a4928ab", size = 3893918, upload-time = "2025-04-09T02:58:02.933Z" }, + { url = "https://files.pythonhosted.org/packages/17/58/064f4dcb7d7e9412f16ecf80ed753f92297e39f399c905389688cf950b81/numba-0.61.2-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:5f154aaea625fb32cfbe3b80c5456d514d416fcdf79733dd69c0df3a11348e9e", size = 3584056, upload-time = "2025-04-09T02:58:04.538Z" }, + { url = "https://files.pythonhosted.org/packages/af/a4/6d3a0f2d3989e62a18749e1e9913d5fa4910bbb3e3311a035baea6caf26d/numba-0.61.2-cp313-cp313-win_amd64.whl", hash = "sha256:59321215e2e0ac5fa928a8020ab00b8e57cda8a97384963ac0dfa4d4e6aa54e7", size = 2831846, upload-time = "2025-04-09T02:58:06.125Z" }, +] + [[package]] name = "numpy" version = "1.24.4" @@ -3910,6 +4486,8 @@ name = "numpy" version = "2.0.2" source = { registry = "https://pypi.org/simple" } resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", "python_full_version == '3.9.*'", ] sdist = { url = "https://files.pythonhosted.org/packages/a9/75/10dd1f8116a8b796cb2c737b674e02d02e80454bda953fa7e65d8c12b016/numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78", size = 18902015, upload-time = "2024-08-26T20:19:40.945Z" } @@ -4025,68 +4603,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666, upload-time = "2025-05-17T21:45:31.426Z" }, ] -[[package]] -name = "numpy" -version = "2.3.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.12'", - "python_full_version == '3.11.*'", -] -sdist = { url = "https://files.pythonhosted.org/packages/f3/db/8e12381333aea300890829a0a36bfa738cac95475d88982d538725143fd9/numpy-2.3.0.tar.gz", hash = "sha256:581f87f9e9e9db2cba2141400e160e9dd644ee248788d6f90636eeb8fd9260a6", size = 20382813, upload-time = "2025-06-07T14:54:32.608Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/5f/df67435257d827eb3b8af66f585223dc2c3f2eb7ad0b50cb1dae2f35f494/numpy-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c3c9fdde0fa18afa1099d6257eb82890ea4f3102847e692193b54e00312a9ae9", size = 21199688, upload-time = "2025-06-07T14:36:52.067Z" }, - { url = "https://files.pythonhosted.org/packages/e5/ce/aad219575055d6c9ef29c8c540c81e1c38815d3be1fe09cdbe53d48ee838/numpy-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46d16f72c2192da7b83984aa5455baee640e33a9f1e61e656f29adf55e406c2b", size = 14359277, upload-time = "2025-06-07T14:37:15.325Z" }, - { url = "https://files.pythonhosted.org/packages/29/6b/2d31da8e6d2ec99bed54c185337a87f8fbeccc1cd9804e38217e92f3f5e2/numpy-2.3.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:a0be278be9307c4ab06b788f2a077f05e180aea817b3e41cebbd5aaf7bd85ed3", size = 5376069, upload-time = "2025-06-07T14:37:25.636Z" }, - { url = "https://files.pythonhosted.org/packages/7d/2a/6c59a062397553ec7045c53d5fcdad44e4536e54972faa2ba44153bca984/numpy-2.3.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:99224862d1412d2562248d4710126355d3a8db7672170a39d6909ac47687a8a4", size = 6913057, upload-time = "2025-06-07T14:37:37.215Z" }, - { url = "https://files.pythonhosted.org/packages/d5/5a/8df16f258d28d033e4f359e29d3aeb54663243ac7b71504e89deeb813202/numpy-2.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:2393a914db64b0ead0ab80c962e42d09d5f385802006a6c87835acb1f58adb96", size = 14568083, upload-time = "2025-06-07T14:37:59.337Z" }, - { url = "https://files.pythonhosted.org/packages/0a/92/0528a563dfc2cdccdcb208c0e241a4bb500d7cde218651ffb834e8febc50/numpy-2.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:7729c8008d55e80784bd113787ce876ca117185c579c0d626f59b87d433ea779", size = 16929402, upload-time = "2025-06-07T14:38:24.343Z" }, - { url = "https://files.pythonhosted.org/packages/e4/2f/e7a8c8d4a2212c527568d84f31587012cf5497a7271ea1f23332142f634e/numpy-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:06d4fb37a8d383b769281714897420c5cc3545c79dc427df57fc9b852ee0bf58", size = 15879193, upload-time = "2025-06-07T14:38:48.007Z" }, - { url = "https://files.pythonhosted.org/packages/e2/c3/dada3f005953847fe35f42ac0fe746f6e1ea90b4c6775e4be605dcd7b578/numpy-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c39ec392b5db5088259c68250e342612db82dc80ce044cf16496cf14cf6bc6f8", size = 18665318, upload-time = "2025-06-07T14:39:15.794Z" }, - { url = "https://files.pythonhosted.org/packages/3b/ae/3f448517dedefc8dd64d803f9d51a8904a48df730e00a3c5fb1e75a60620/numpy-2.3.0-cp311-cp311-win32.whl", hash = "sha256:ee9d3ee70d62827bc91f3ea5eee33153212c41f639918550ac0475e3588da59f", size = 6601108, upload-time = "2025-06-07T14:39:27.176Z" }, - { url = "https://files.pythonhosted.org/packages/8c/4a/556406d2bb2b9874c8cbc840c962683ac28f21efbc9b01177d78f0199ca1/numpy-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:43c55b6a860b0eb44d42341438b03513cf3879cb3617afb749ad49307e164edd", size = 13021525, upload-time = "2025-06-07T14:39:46.637Z" }, - { url = "https://files.pythonhosted.org/packages/ed/ee/bf54278aef30335ffa9a189f869ea09e1a195b3f4b93062164a3b02678a7/numpy-2.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:2e6a1409eee0cb0316cb64640a49a49ca44deb1a537e6b1121dc7c458a1299a8", size = 10170327, upload-time = "2025-06-07T14:40:02.703Z" }, - { url = "https://files.pythonhosted.org/packages/89/59/9df493df81ac6f76e9f05cdbe013cdb0c9a37b434f6e594f5bd25e278908/numpy-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:389b85335838155a9076e9ad7f8fdba0827496ec2d2dc32ce69ce7898bde03ba", size = 20897025, upload-time = "2025-06-07T14:40:33.558Z" }, - { url = "https://files.pythonhosted.org/packages/2f/86/4ff04335901d6cf3a6bb9c748b0097546ae5af35e455ae9b962ebff4ecd7/numpy-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9498f60cd6bb8238d8eaf468a3d5bb031d34cd12556af53510f05fcf581c1b7e", size = 14129882, upload-time = "2025-06-07T14:40:55.034Z" }, - { url = "https://files.pythonhosted.org/packages/71/8d/a942cd4f959de7f08a79ab0c7e6cecb7431d5403dce78959a726f0f57aa1/numpy-2.3.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:622a65d40d8eb427d8e722fd410ac3ad4958002f109230bc714fa551044ebae2", size = 5110181, upload-time = "2025-06-07T14:41:04.4Z" }, - { url = "https://files.pythonhosted.org/packages/86/5d/45850982efc7b2c839c5626fb67fbbc520d5b0d7c1ba1ae3651f2f74c296/numpy-2.3.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:b9446d9d8505aadadb686d51d838f2b6688c9e85636a0c3abaeb55ed54756459", size = 6647581, upload-time = "2025-06-07T14:41:14.695Z" }, - { url = "https://files.pythonhosted.org/packages/1a/c0/c871d4a83f93b00373d3eebe4b01525eee8ef10b623a335ec262b58f4dc1/numpy-2.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:50080245365d75137a2bf46151e975de63146ae6d79f7e6bd5c0e85c9931d06a", size = 14262317, upload-time = "2025-06-07T14:41:35.862Z" }, - { url = "https://files.pythonhosted.org/packages/b7/f6/bc47f5fa666d5ff4145254f9e618d56e6a4ef9b874654ca74c19113bb538/numpy-2.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:c24bb4113c66936eeaa0dc1e47c74770453d34f46ee07ae4efd853a2ed1ad10a", size = 16633919, upload-time = "2025-06-07T14:42:00.622Z" }, - { url = "https://files.pythonhosted.org/packages/f5/b4/65f48009ca0c9b76df5f404fccdea5a985a1bb2e34e97f21a17d9ad1a4ba/numpy-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4d8d294287fdf685281e671886c6dcdf0291a7c19db3e5cb4178d07ccf6ecc67", size = 15567651, upload-time = "2025-06-07T14:42:24.429Z" }, - { url = "https://files.pythonhosted.org/packages/f1/62/5367855a2018578e9334ed08252ef67cc302e53edc869666f71641cad40b/numpy-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6295f81f093b7f5769d1728a6bd8bf7466de2adfa771ede944ce6711382b89dc", size = 18361723, upload-time = "2025-06-07T14:42:51.167Z" }, - { url = "https://files.pythonhosted.org/packages/d4/75/5baed8cd867eabee8aad1e74d7197d73971d6a3d40c821f1848b8fab8b84/numpy-2.3.0-cp312-cp312-win32.whl", hash = "sha256:e6648078bdd974ef5d15cecc31b0c410e2e24178a6e10bf511e0557eed0f2570", size = 6318285, upload-time = "2025-06-07T14:43:02.052Z" }, - { url = "https://files.pythonhosted.org/packages/bc/49/d5781eaa1a15acb3b3a3f49dc9e2ff18d92d0ce5c2976f4ab5c0a7360250/numpy-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:0898c67a58cdaaf29994bc0e2c65230fd4de0ac40afaf1584ed0b02cd74c6fdd", size = 12732594, upload-time = "2025-06-07T14:43:21.071Z" }, - { url = "https://files.pythonhosted.org/packages/c2/1c/6d343e030815c7c97a1f9fbad00211b47717c7fe446834c224bd5311e6f1/numpy-2.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:bd8df082b6c4695753ad6193018c05aac465d634834dca47a3ae06d4bb22d9ea", size = 9891498, upload-time = "2025-06-07T14:43:36.332Z" }, - { url = "https://files.pythonhosted.org/packages/73/fc/1d67f751fd4dbafc5780244fe699bc4084268bad44b7c5deb0492473127b/numpy-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5754ab5595bfa2c2387d241296e0381c21f44a4b90a776c3c1d39eede13a746a", size = 20889633, upload-time = "2025-06-07T14:44:06.839Z" }, - { url = "https://files.pythonhosted.org/packages/e8/95/73ffdb69e5c3f19ec4530f8924c4386e7ba097efc94b9c0aff607178ad94/numpy-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d11fa02f77752d8099573d64e5fe33de3229b6632036ec08f7080f46b6649959", size = 14151683, upload-time = "2025-06-07T14:44:28.847Z" }, - { url = "https://files.pythonhosted.org/packages/64/d5/06d4bb31bb65a1d9c419eb5676173a2f90fd8da3c59f816cc54c640ce265/numpy-2.3.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:aba48d17e87688a765ab1cd557882052f238e2f36545dfa8e29e6a91aef77afe", size = 5102683, upload-time = "2025-06-07T14:44:38.417Z" }, - { url = "https://files.pythonhosted.org/packages/12/8b/6c2cef44f8ccdc231f6b56013dff1d71138c48124334aded36b1a1b30c5a/numpy-2.3.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:4dc58865623023b63b10d52f18abaac3729346a7a46a778381e0e3af4b7f3beb", size = 6640253, upload-time = "2025-06-07T14:44:49.359Z" }, - { url = "https://files.pythonhosted.org/packages/62/aa/fca4bf8de3396ddb59544df9b75ffe5b73096174de97a9492d426f5cd4aa/numpy-2.3.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:df470d376f54e052c76517393fa443758fefcdd634645bc9c1f84eafc67087f0", size = 14258658, upload-time = "2025-06-07T14:45:10.156Z" }, - { url = "https://files.pythonhosted.org/packages/1c/12/734dce1087eed1875f2297f687e671cfe53a091b6f2f55f0c7241aad041b/numpy-2.3.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:87717eb24d4a8a64683b7a4e91ace04e2f5c7c77872f823f02a94feee186168f", size = 16628765, upload-time = "2025-06-07T14:45:35.076Z" }, - { url = "https://files.pythonhosted.org/packages/48/03/ffa41ade0e825cbcd5606a5669962419528212a16082763fc051a7247d76/numpy-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d8fa264d56882b59dcb5ea4d6ab6f31d0c58a57b41aec605848b6eb2ef4a43e8", size = 15564335, upload-time = "2025-06-07T14:45:58.797Z" }, - { url = "https://files.pythonhosted.org/packages/07/58/869398a11863310aee0ff85a3e13b4c12f20d032b90c4b3ee93c3b728393/numpy-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e651756066a0eaf900916497e20e02fe1ae544187cb0fe88de981671ee7f6270", size = 18360608, upload-time = "2025-06-07T14:46:25.687Z" }, - { url = "https://files.pythonhosted.org/packages/2f/8a/5756935752ad278c17e8a061eb2127c9a3edf4ba2c31779548b336f23c8d/numpy-2.3.0-cp313-cp313-win32.whl", hash = "sha256:e43c3cce3b6ae5f94696669ff2a6eafd9a6b9332008bafa4117af70f4b88be6f", size = 6310005, upload-time = "2025-06-07T14:50:13.138Z" }, - { url = "https://files.pythonhosted.org/packages/08/60/61d60cf0dfc0bf15381eaef46366ebc0c1a787856d1db0c80b006092af84/numpy-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:81ae0bf2564cf475f94be4a27ef7bcf8af0c3e28da46770fc904da9abd5279b5", size = 12729093, upload-time = "2025-06-07T14:50:31.82Z" }, - { url = "https://files.pythonhosted.org/packages/66/31/2f2f2d2b3e3c32d5753d01437240feaa32220b73258c9eef2e42a0832866/numpy-2.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:c8738baa52505fa6e82778580b23f945e3578412554d937093eac9205e845e6e", size = 9885689, upload-time = "2025-06-07T14:50:47.888Z" }, - { url = "https://files.pythonhosted.org/packages/f1/89/c7828f23cc50f607ceb912774bb4cff225ccae7131c431398ad8400e2c98/numpy-2.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:39b27d8b38942a647f048b675f134dd5a567f95bfff481f9109ec308515c51d8", size = 20986612, upload-time = "2025-06-07T14:46:56.077Z" }, - { url = "https://files.pythonhosted.org/packages/dd/46/79ecf47da34c4c50eedec7511e53d57ffdfd31c742c00be7dc1d5ffdb917/numpy-2.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0eba4a1ea88f9a6f30f56fdafdeb8da3774349eacddab9581a21234b8535d3d3", size = 14298953, upload-time = "2025-06-07T14:47:18.053Z" }, - { url = "https://files.pythonhosted.org/packages/59/44/f6caf50713d6ff4480640bccb2a534ce1d8e6e0960c8f864947439f0ee95/numpy-2.3.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:b0f1f11d0a1da54927436505a5a7670b154eac27f5672afc389661013dfe3d4f", size = 5225806, upload-time = "2025-06-07T14:47:27.524Z" }, - { url = "https://files.pythonhosted.org/packages/a6/43/e1fd1aca7c97e234dd05e66de4ab7a5be54548257efcdd1bc33637e72102/numpy-2.3.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:690d0a5b60a47e1f9dcec7b77750a4854c0d690e9058b7bef3106e3ae9117808", size = 6735169, upload-time = "2025-06-07T14:47:38.057Z" }, - { url = "https://files.pythonhosted.org/packages/84/89/f76f93b06a03177c0faa7ca94d0856c4e5c4bcaf3c5f77640c9ed0303e1c/numpy-2.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:8b51ead2b258284458e570942137155978583e407babc22e3d0ed7af33ce06f8", size = 14330701, upload-time = "2025-06-07T14:47:59.113Z" }, - { url = "https://files.pythonhosted.org/packages/aa/f5/4858c3e9ff7a7d64561b20580cf7cc5d085794bd465a19604945d6501f6c/numpy-2.3.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:aaf81c7b82c73bd9b45e79cfb9476cb9c29e937494bfe9092c26aece812818ad", size = 16692983, upload-time = "2025-06-07T14:48:24.196Z" }, - { url = "https://files.pythonhosted.org/packages/08/17/0e3b4182e691a10e9483bcc62b4bb8693dbf9ea5dc9ba0b77a60435074bb/numpy-2.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f420033a20b4f6a2a11f585f93c843ac40686a7c3fa514060a97d9de93e5e72b", size = 15641435, upload-time = "2025-06-07T14:48:47.712Z" }, - { url = "https://files.pythonhosted.org/packages/4e/d5/463279fda028d3c1efa74e7e8d507605ae87f33dbd0543cf4c4527c8b882/numpy-2.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d344ca32ab482bcf8735d8f95091ad081f97120546f3d250240868430ce52555", size = 18433798, upload-time = "2025-06-07T14:49:14.866Z" }, - { url = "https://files.pythonhosted.org/packages/0e/1e/7a9d98c886d4c39a2b4d3a7c026bffcf8fbcaf518782132d12a301cfc47a/numpy-2.3.0-cp313-cp313t-win32.whl", hash = "sha256:48a2e8eaf76364c32a1feaa60d6925eaf32ed7a040183b807e02674305beef61", size = 6438632, upload-time = "2025-06-07T14:49:25.67Z" }, - { url = "https://files.pythonhosted.org/packages/fe/ab/66fc909931d5eb230107d016861824f335ae2c0533f422e654e5ff556784/numpy-2.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ba17f93a94e503551f154de210e4d50c5e3ee20f7e7a1b5f6ce3f22d419b93bb", size = 12868491, upload-time = "2025-06-07T14:49:44.898Z" }, - { url = "https://files.pythonhosted.org/packages/ee/e8/2c8a1c9e34d6f6d600c83d5ce5b71646c32a13f34ca5c518cc060639841c/numpy-2.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:f14e016d9409680959691c109be98c436c6249eaf7f118b424679793607b5944", size = 9935345, upload-time = "2025-06-07T14:50:02.311Z" }, - { url = "https://files.pythonhosted.org/packages/6a/a2/f8c1133f90eaa1c11bbbec1dc28a42054d0ce74bc2c9838c5437ba5d4980/numpy-2.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:80b46117c7359de8167cc00a2c7d823bdd505e8c7727ae0871025a86d668283b", size = 21070759, upload-time = "2025-06-07T14:51:18.241Z" }, - { url = "https://files.pythonhosted.org/packages/6c/e0/4c05fc44ba28463096eee5ae2a12832c8d2759cc5bcec34ae33386d3ff83/numpy-2.3.0-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:5814a0f43e70c061f47abd5857d120179609ddc32a613138cbb6c4e9e2dbdda5", size = 5301054, upload-time = "2025-06-07T14:51:27.413Z" }, - { url = "https://files.pythonhosted.org/packages/8a/3b/6c06cdebe922bbc2a466fe2105f50f661238ea223972a69c7deb823821e7/numpy-2.3.0-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:ef6c1e88fd6b81ac6d215ed71dc8cd027e54d4bf1d2682d362449097156267a2", size = 6817520, upload-time = "2025-06-07T14:51:38.015Z" }, - { url = "https://files.pythonhosted.org/packages/9d/a3/1e536797fd10eb3c5dbd2e376671667c9af19e241843548575267242ea02/numpy-2.3.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:33a5a12a45bb82d9997e2c0b12adae97507ad7c347546190a18ff14c28bbca12", size = 14398078, upload-time = "2025-06-07T14:52:00.122Z" }, - { url = "https://files.pythonhosted.org/packages/7c/61/9d574b10d9368ecb1a0c923952aa593510a20df4940aa615b3a71337c8db/numpy-2.3.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:54dfc8681c1906d239e95ab1508d0a533c4a9505e52ee2d71a5472b04437ef97", size = 16751324, upload-time = "2025-06-07T14:52:25.077Z" }, - { url = "https://files.pythonhosted.org/packages/39/de/bcad52ce972dc26232629ca3a99721fd4b22c1d2bda84d5db6541913ef9c/numpy-2.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:e017a8a251ff4d18d71f139e28bdc7c31edba7a507f72b1414ed902cbe48c74d", size = 12924237, upload-time = "2025-06-07T14:52:44.713Z" }, -] - [[package]] name = "orjson" version = "3.10.15" @@ -4346,9 +4862,8 @@ resolution-markers = [ "python_full_version == '3.9.*'", ] dependencies = [ - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "python-dateutil", marker = "python_full_version >= '3.9'" }, { name = "pytz", marker = "python_full_version >= '3.9'" }, { name = "tzdata", marker = "python_full_version >= '3.9'" }, @@ -4407,6 +4922,42 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ef/af/4fbc8cab944db5d21b7e2a5b8e9211a03a79852b1157e2c102fcc61ac440/pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc", size = 8663, upload-time = "2024-01-18T20:08:11.28Z" }, ] +[[package]] +name = "param" +version = "2.1.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/15/39/75203d36ddd59f3819ef930451d4436e60248a674fb1136d9cf126cb9859/param-2.1.1.tar.gz", hash = "sha256:3b1da14abafa75bfd908572378a58696826b3719a723bc31b40ffff2e9a5c852", size = 174619, upload-time = "2024-06-25T08:12:58.804Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c5/7b/5593a40fcd0981bda85274bb3e622ac433a94ae1e11ef8639de362cfa7de/param-2.1.1-py3-none-any.whl", hash = "sha256:81066d040526fbaa44b6419f3e92348fa8856ea44c8d3915e9245937ddabe2d6", size = 116757, upload-time = "2024-06-25T08:12:56.173Z" }, +] + +[[package]] +name = "param" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/97/9c/69a576ffb9da36072ffc1f7ef7afaad88366d30dcb327caeb92c8b6cc4ee/param-2.2.1.tar.gz", hash = "sha256:ba1f7cec6455ea8ad96f641f4082759bf1057dcbe629aa79d956b25973252422", size = 176980, upload-time = "2025-06-11T15:10:26.683Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/57/2b46b199482bbaaade2f978164577cf7c2fdc2782a7caf29fabd5265a84f/param-2.2.1-py3-none-any.whl", hash = "sha256:e3a4ca7f3d7610615129a55dbde2e90eb67d11cef70936487b0a59717dba0bdc", size = 119047, upload-time = "2025-06-11T15:10:25.136Z" }, +] + +[[package]] +name = "parmed" +version = "4.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/15/29/80bc4fa049e166e0b8eda2a7220c5473809f2f96bb15f1f117abfb8dad7c/parmed-4.3.0.tar.gz", hash = "sha256:3d0208f56507649b5af91bbb128f650a6f86de1b5a9af780e6479145e5362ea3", size = 20197299, upload-time = "2024-10-30T21:27:51.114Z" } + [[package]] name = "parso" version = "0.8.4" @@ -4466,9 +5017,8 @@ version = "1.0.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/d1/81/74f6a65b848ffd16c18f920620ce999fe45fe27f01ab3911260ce4ed85e4/patsy-1.0.1.tar.gz", hash = "sha256:e786a9391eec818c054e359b737bbce692f051aee4c661f4141cc88fb459c0c4", size = 396010, upload-time = "2024-11-12T14:10:54.642Z" } wheels = [ @@ -4484,6 +5034,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c0/84/af442c4458756bb0c0d2424102d1200616f3ff9b82c48aaa130e08549bf6/pdfrw-0.4-py2.py3-none-any.whl", hash = "sha256:758289edaa3b672e9a1a67504be73c18ec668d4e5b9d5ac9cbc0dc753d8d196b", size = 69460, upload-time = "2017-09-18T10:08:10.732Z" }, ] +[[package]] +name = "periodictable" +version = "2.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "pyparsing", version = "3.1.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pyparsing", version = "3.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/e4/f2a338abfb5a6b9e2a48dc4acaa9df0bd94126df336ab403178f6a7a901a/periodictable-2.0.2-py3-none-any.whl", hash = "sha256:7d0680baf758715dd66bdac733de82dcb976aa03981fbd6d75a84213fb3b5f86", size = 811077, upload-time = "2024-12-20T02:26:26.165Z" }, +] + [[package]] name = "pexpect" version = "4.9.0" @@ -4745,10 +5310,17 @@ dev = [ { name = "anywidget" }, { name = "build" }, { name = "colorcet" }, + { name = "dash-bio" }, + { name = "datashader", version = "0.15.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "datashader", version = "0.17.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "datashader", version = "0.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "fiona", marker = "python_full_version < '3.9'" }, { name = "geopandas", version = "0.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "geopandas", version = "1.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "geopandas", version = "1.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "google" }, + { name = "igraph", version = "0.11.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "igraph", version = "0.11.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "inflect", version = "7.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "inflect", version = "7.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "jupyter" }, @@ -4762,9 +5334,8 @@ dev = [ { name = "mkdocstrings", version = "0.26.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version < '3.9'" }, { name = "mkdocstrings", version = "0.29.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version >= '3.9'" }, { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "orjson", version = "3.10.15", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "orjson", version = "3.10.18", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "pandas", version = "2.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, @@ -4775,6 +5346,7 @@ dev = [ { name = "plotly-geo" }, { name = "polars", version = "1.8.2", source = { registry = "https://pypi.org/simple" }, extra = ["timezone"], marker = "python_full_version < '3.9'" }, { name = "polars", version = "1.30.0", source = { registry = "https://pypi.org/simple" }, extra = ["timezone"], marker = "python_full_version >= '3.9'" }, + { name = "pooch" }, { name = "pyarrow", version = "17.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "pyarrow", version = "20.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "pydoclint", version = "0.5.11", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, @@ -4788,6 +5360,9 @@ dev = [ { name = "scikit-image", version = "0.21.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "scikit-image", version = "0.24.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "scikit-image", version = "0.25.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "scikit-learn", version = "1.3.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "scikit-learn", version = "1.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "scikit-learn", version = "1.7.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "scipy", version = "1.10.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "scipy", version = "1.13.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, @@ -4795,7 +5370,9 @@ dev = [ { name = "shapely", version = "2.1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "statsmodels", version = "0.14.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "statsmodels", version = "0.14.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "umap" }, { name = "vaex", marker = "python_full_version < '3.10'" }, + { name = "wget" }, { name = "xarray", version = "2023.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "xarray", version = "2024.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "xarray", version = "2025.6.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, @@ -4826,10 +5403,17 @@ dev-optional = [ { name = "anywidget" }, { name = "build" }, { name = "colorcet" }, + { name = "dash-bio" }, + { name = "datashader", version = "0.15.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "datashader", version = "0.17.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "datashader", version = "0.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "fiona", marker = "python_full_version < '3.9'" }, { name = "geopandas", version = "0.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "geopandas", version = "1.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "geopandas", version = "1.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "google" }, + { name = "igraph", version = "0.11.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "igraph", version = "0.11.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "inflect", version = "7.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "inflect", version = "7.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "jupyter" }, @@ -4843,9 +5427,8 @@ dev-optional = [ { name = "mkdocstrings", version = "0.26.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version < '3.9'" }, { name = "mkdocstrings", version = "0.29.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version >= '3.9'" }, { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "orjson", version = "3.10.15", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "orjson", version = "3.10.18", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "pandas", version = "2.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, @@ -4856,6 +5439,7 @@ dev-optional = [ { name = "plotly-geo" }, { name = "polars", version = "1.8.2", source = { registry = "https://pypi.org/simple" }, extra = ["timezone"], marker = "python_full_version < '3.9'" }, { name = "polars", version = "1.30.0", source = { registry = "https://pypi.org/simple" }, extra = ["timezone"], marker = "python_full_version >= '3.9'" }, + { name = "pooch" }, { name = "pyarrow", version = "17.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "pyarrow", version = "20.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "pydoclint", version = "0.5.11", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, @@ -4869,6 +5453,9 @@ dev-optional = [ { name = "scikit-image", version = "0.21.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "scikit-image", version = "0.24.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "scikit-image", version = "0.25.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "scikit-learn", version = "1.3.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "scikit-learn", version = "1.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "scikit-learn", version = "1.7.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "scipy", version = "1.10.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "scipy", version = "1.13.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, @@ -4876,16 +5463,17 @@ dev-optional = [ { name = "shapely", version = "2.1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "statsmodels", version = "0.14.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "statsmodels", version = "0.14.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "umap" }, { name = "vaex", marker = "python_full_version < '3.10'" }, + { name = "wget" }, { name = "xarray", version = "2023.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "xarray", version = "2024.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "xarray", version = "2025.6.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] express = [ { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] kaleido = [ { name = "kaleido" }, @@ -4896,8 +5484,12 @@ requires-dist = [ { name = "anywidget", marker = "extra == 'dev-optional'" }, { name = "build", marker = "extra == 'dev-build'" }, { name = "colorcet", marker = "extra == 'dev-optional'" }, + { name = "dash-bio", marker = "extra == 'dev-optional'" }, + { name = "datashader", marker = "extra == 'dev-optional'" }, { name = "fiona", marker = "python_full_version < '3.9' and extra == 'dev-optional'", specifier = "<=1.9.6" }, { name = "geopandas", marker = "extra == 'dev-optional'" }, + { name = "google", marker = "extra == 'dev-optional'" }, + { name = "igraph", marker = "extra == 'dev-optional'" }, { name = "inflect", marker = "extra == 'dev-optional'" }, { name = "jupyter", marker = "extra == 'dev-build'" }, { name = "kaleido", marker = "extra == 'kaleido'", specifier = ">=1.0.0" }, @@ -4921,6 +5513,7 @@ requires-dist = [ { name = "plotly", extras = ["kaleido"], marker = "extra == 'dev-optional'" }, { name = "plotly-geo", marker = "extra == 'dev-optional'" }, { name = "polars", extras = ["timezone"], marker = "extra == 'dev-optional'" }, + { name = "pooch", marker = "extra == 'dev-optional'" }, { name = "pyarrow", marker = "extra == 'dev-optional'" }, { name = "pydoclint", marker = "extra == 'dev-optional'" }, { name = "pyshp", marker = "extra == 'dev-optional'" }, @@ -4929,10 +5522,13 @@ requires-dist = [ { name = "requests", marker = "extra == 'dev-core'" }, { name = "ruff", marker = "extra == 'dev-core'", specifier = "==0.11.12" }, { name = "scikit-image", marker = "extra == 'dev-optional'" }, + { name = "scikit-learn", marker = "extra == 'dev-optional'" }, { name = "scipy", marker = "extra == 'dev-optional'" }, { name = "shapely", marker = "extra == 'dev-optional'" }, { name = "statsmodels", marker = "extra == 'dev-optional'" }, + { name = "umap", marker = "extra == 'dev-optional'" }, { name = "vaex", marker = "python_full_version < '3.10' and extra == 'dev-optional'" }, + { name = "wget", marker = "extra == 'dev-optional'" }, { name = "xarray", marker = "extra == 'dev-optional'" }, ] provides-extras = ["express", "kaleido", "dev-core", "dev-build", "dev-optional", "dev"] @@ -5026,6 +5622,21 @@ timezone = [ { name = "tzdata", marker = "python_full_version >= '3.9' and sys_platform == 'win32'" }, ] +[[package]] +name = "pooch" +version = "1.8.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, + { name = "platformdirs", version = "4.3.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "platformdirs", version = "4.3.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c6/77/b3d3e00c696c16cf99af81ef7b1f5fe73bd2a307abca41bd7605429fe6e5/pooch-1.8.2.tar.gz", hash = "sha256:76561f0de68a01da4df6af38e9955c4c9d1a5c90da73f7e40276a5728ec83d10", size = 59353, upload-time = "2024-06-06T16:53:46.224Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/87/77cc11c7a9ea9fd05503def69e3d18605852cd0d4b0d3b8f15bbeb3ef1d1/pooch-1.8.2-py3-none-any.whl", hash = "sha256:3529a57096f7198778a5ceefd5ac3ef0e4d06a6ddaf9fc2d609b806f25302c47", size = 64574, upload-time = "2024-06-06T16:53:44.343Z" }, +] + [[package]] name = "progressbar2" version = "4.2.0" @@ -5339,6 +5950,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552, upload-time = "2024-03-30T13:22:20.476Z" }, ] +[[package]] +name = "pyct" +version = "0.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "param", version = "2.1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "param", version = "2.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2e/3b/b5b9d4215bc98df9186a5dfb9f2b4ce6db0b33b1728f63143f1431542e20/pyct-0.5.0.tar.gz", hash = "sha256:dd9f4ac5cbd8e37c352c04036062d3c5f67efec76d404761ef16b0cbf26aa6a0", size = 15837, upload-time = "2023-01-30T11:11:02.365Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/e7/c7c1e9e1b6b23ca1db7af3c6826d57d8da883021f751edcc9c82143b127a/pyct-0.5.0-py2.py3-none-any.whl", hash = "sha256:a4038a8885059ab8cac6f946ea30e0b5e6bdbe0b92b6723f06737035f9d65e8c", size = 15750, upload-time = "2023-01-30T11:11:01.088Z" }, +] + [[package]] name = "pydantic" version = "2.10.6" @@ -5771,9 +6395,8 @@ version = "0.11.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "certifi", marker = "python_full_version >= '3.9'" }, - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "packaging", marker = "python_full_version >= '3.9'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/54/c3/5e30f913ad8a975abe6f6582a2d3cf321bdf40fd696940d9283c63880c7a/pyogrio-0.11.0.tar.gz", hash = "sha256:a7e0a97bc10c0d7204f6bf52e1b928cba0554c35a907c32b23065aed1ed97b3f", size = 286915, upload-time = "2025-05-08T15:20:17.843Z" } @@ -5830,6 +6453,9 @@ name = "pyparsing" version = "3.2.3" source = { registry = "https://pypi.org/simple" } resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", ] sdist = { url = "https://files.pythonhosted.org/packages/bb/22/f1129e69d94ffff626bdb5c835506b3a5b4f3d070f17ea295e12c2c6f60f/pyparsing-3.2.3.tar.gz", hash = "sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be", size = 1088608, upload-time = "2025-03-25T05:01:28.114Z" } @@ -6513,6 +7139,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c", size = 64847, upload-time = "2025-06-09T16:43:05.728Z" }, ] +[[package]] +name = "retrying" +version = "1.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/2e/90b236e496810c23eb428a1f3e2723849eb219d6196a4f7afe16f4981b5c/retrying-1.4.1.tar.gz", hash = "sha256:4d206e0ed2aff5ef2f3cd867abb9511e9e8f31127c5aca20f1d5246e476903b0", size = 11344, upload-time = "2025-07-19T09:39:01.906Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/25/f3b628e123699139b959551ed922f35af97fa1505e195ae3e6537a14fbc3/retrying-1.4.1-py3-none-any.whl", hash = "sha256:d736050c1adfc0a71fa022d9198ee130b0e66be318678a3fdd8b1b8872dc0997", size = 12184, upload-time = "2025-07-19T09:39:00.574Z" }, +] + [[package]] name = "rfc3339-validator" version = "0.1.4" @@ -6920,8 +7555,8 @@ dependencies = [ { name = "lazy-loader", marker = "python_full_version >= '3.10'" }, { name = "networkx", version = "3.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, { name = "networkx", version = "3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "packaging", marker = "python_full_version >= '3.10'" }, { name = "pillow", version = "11.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, @@ -6953,6 +7588,142 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/10/cc/75e9f17e3670b5ed93c32456fda823333c6279b144cd93e2c03aa06aa472/scikit_image-0.25.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:330d061bd107d12f8d68f1d611ae27b3b813b8cdb0300a71d07b1379178dd4cd", size = 13862801, upload-time = "2025-02-18T18:05:20.783Z" }, ] +[[package]] +name = "scikit-learn" +version = "1.3.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "joblib", version = "1.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "scipy", version = "1.10.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "threadpoolctl", version = "3.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/88/00/835e3d280fdd7784e76bdef91dd9487582d7951a7254f59fc8004fc8b213/scikit-learn-1.3.2.tar.gz", hash = "sha256:a2f54c76accc15a34bfb9066e6c7a56c1e7235dda5762b990792330b52ccfb05", size = 7510251, upload-time = "2023-10-23T13:47:55.287Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/53/570b55a6e10b8694ac1e3024d2df5cd443f1b4ff6d28430845da8b9019b3/scikit_learn-1.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e326c0eb5cf4d6ba40f93776a20e9a7a69524c4db0757e7ce24ba222471ee8a1", size = 10209999, upload-time = "2023-10-23T13:46:30.373Z" }, + { url = "https://files.pythonhosted.org/packages/70/d0/50ace22129f79830e3cf682d0a2bd4843ef91573299d43112d52790163a8/scikit_learn-1.3.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:535805c2a01ccb40ca4ab7d081d771aea67e535153e35a1fd99418fcedd1648a", size = 9479353, upload-time = "2023-10-23T13:46:34.368Z" }, + { url = "https://files.pythonhosted.org/packages/8f/46/fcc35ed7606c50d3072eae5a107a45cfa5b7f5fa8cc48610edd8cc8e8550/scikit_learn-1.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1215e5e58e9880b554b01187b8c9390bf4dc4692eedeaf542d3273f4785e342c", size = 10304705, upload-time = "2023-10-23T13:46:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/d0/0b/26ad95cf0b747be967b15fb71a06f5ac67aba0fd2f9cd174de6edefc4674/scikit_learn-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ee107923a623b9f517754ea2f69ea3b62fc898a3641766cb7deb2f2ce450161", size = 10827807, upload-time = "2023-10-23T13:46:41.59Z" }, + { url = "https://files.pythonhosted.org/packages/69/8a/cf17d6443f5f537e099be81535a56ab68a473f9393fbffda38cd19899fc8/scikit_learn-1.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:35a22e8015048c628ad099da9df5ab3004cdbf81edc75b396fd0cff8699ac58c", size = 9255427, upload-time = "2023-10-23T13:46:44.826Z" }, + { url = "https://files.pythonhosted.org/packages/08/5d/e5acecd6e99a6b656e42e7a7b18284e2f9c9f512e8ed6979e1e75d25f05f/scikit_learn-1.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6fb6bc98f234fda43163ddbe36df8bcde1d13ee176c6dc9b92bb7d3fc842eb66", size = 10116376, upload-time = "2023-10-23T13:46:48.147Z" }, + { url = "https://files.pythonhosted.org/packages/40/c6/2e91eefb757822e70d351e02cc38d07c137212ae7c41ac12746415b4860a/scikit_learn-1.3.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:18424efee518a1cde7b0b53a422cde2f6625197de6af36da0b57ec502f126157", size = 9383415, upload-time = "2023-10-23T13:46:51.324Z" }, + { url = "https://files.pythonhosted.org/packages/fa/fd/b3637639e73bb72b12803c5245f2a7299e09b2acd85a0f23937c53369a1c/scikit_learn-1.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3271552a5eb16f208a6f7f617b8cc6d1f137b52c8a1ef8edf547db0259b2c9fb", size = 10279163, upload-time = "2023-10-23T13:46:54.642Z" }, + { url = "https://files.pythonhosted.org/packages/0c/2a/d3ff6091406bc2207e0adb832ebd15e40ac685811c7e2e3b432bfd969b71/scikit_learn-1.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc4144a5004a676d5022b798d9e573b05139e77f271253a4703eed295bde0433", size = 10884422, upload-time = "2023-10-23T13:46:58.087Z" }, + { url = "https://files.pythonhosted.org/packages/4e/ba/ce9bd1cd4953336a0e213b29cb80bb11816f2a93de8c99f88ef0b446ad0c/scikit_learn-1.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:67f37d708f042a9b8d59551cf94d30431e01374e00dc2645fa186059c6c5d78b", size = 9207060, upload-time = "2023-10-23T13:47:00.948Z" }, + { url = "https://files.pythonhosted.org/packages/26/7e/2c3b82c8c29aa384c8bf859740419278627d2cdd0050db503c8840e72477/scikit_learn-1.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:8db94cd8a2e038b37a80a04df8783e09caac77cbe052146432e67800e430c028", size = 9979322, upload-time = "2023-10-23T13:47:03.977Z" }, + { url = "https://files.pythonhosted.org/packages/cf/fc/6c52ffeb587259b6b893b7cac268f1eb1b5426bcce1aa20e53523bfe6944/scikit_learn-1.3.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:61a6efd384258789aa89415a410dcdb39a50e19d3d8410bd29be365bcdd512d5", size = 9270688, upload-time = "2023-10-23T13:47:07.316Z" }, + { url = "https://files.pythonhosted.org/packages/e5/a7/6f4ae76f72ae9de162b97acbf1f53acbe404c555f968d13da21e4112a002/scikit_learn-1.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb06f8dce3f5ddc5dee1715a9b9f19f20d295bed8e3cd4fa51e1d050347de525", size = 10280398, upload-time = "2023-10-23T13:47:10.796Z" }, + { url = "https://files.pythonhosted.org/packages/5d/b7/ee35904c07a0666784349529412fbb9814a56382b650d30fd9d6be5e5054/scikit_learn-1.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b2de18d86f630d68fe1f87af690d451388bb186480afc719e5f770590c2ef6c", size = 10796478, upload-time = "2023-10-23T13:47:14.077Z" }, + { url = "https://files.pythonhosted.org/packages/fe/6b/db949ed5ac367987b1f250f070f340b7715d22f0c9c965bdf07de6ca75a3/scikit_learn-1.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:0402638c9a7c219ee52c94cbebc8fcb5eb9fe9c773717965c1f4185588ad3107", size = 9133979, upload-time = "2023-10-23T13:47:17.389Z" }, + { url = "https://files.pythonhosted.org/packages/e3/52/fd60b0b022af41fbf3463587ddc719288f0f2d4e46603ab3184996cd5f04/scikit_learn-1.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a19f90f95ba93c1a7f7924906d0576a84da7f3b2282ac3bfb7a08a32801add93", size = 10064879, upload-time = "2023-10-23T13:47:21.392Z" }, + { url = "https://files.pythonhosted.org/packages/a4/62/92e9cec3deca8b45abf62dd8f6469d688b3f28b9c170809fcc46f110b523/scikit_learn-1.3.2-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:b8692e395a03a60cd927125eef3a8e3424d86dde9b2370d544f0ea35f78a8073", size = 9373934, upload-time = "2023-10-23T13:47:24.645Z" }, + { url = "https://files.pythonhosted.org/packages/49/81/91585dc83ec81dcd52e934f6708bf350b06949d8bfa13bf3b711b851c3f4/scikit_learn-1.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15e1e94cc23d04d39da797ee34236ce2375ddea158b10bee3c343647d615581d", size = 10499159, upload-time = "2023-10-23T13:47:28.41Z" }, + { url = "https://files.pythonhosted.org/packages/3f/48/6fdd99f5717045f9984616b5c2ec683d6286d30c0ac234563062132b83ab/scikit_learn-1.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:785a2213086b7b1abf037aeadbbd6d67159feb3e30263434139c98425e3dcfcf", size = 11067392, upload-time = "2023-10-23T13:47:32.087Z" }, + { url = "https://files.pythonhosted.org/packages/52/2d/ad6928a578c78bb0e44e34a5a922818b14c56716b81d145924f1f291416f/scikit_learn-1.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:64381066f8aa63c2710e6b56edc9f0894cc7bf59bd71b8ce5613a4559b6145e0", size = 9257871, upload-time = "2023-10-23T13:47:36.142Z" }, + { url = "https://files.pythonhosted.org/packages/f8/67/584acfc492ae1bd293d80c7a8c57ba7456e4e415c64869b7c240679eaf78/scikit_learn-1.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6c43290337f7a4b969d207e620658372ba3c1ffb611f8bc2b6f031dc5c6d1d03", size = 10232286, upload-time = "2023-10-23T13:47:39.434Z" }, + { url = "https://files.pythonhosted.org/packages/20/0f/51e3ccdc87c25e2e33bf7962249ff8c5ab1d6aed0144fb003348ce8bd352/scikit_learn-1.3.2-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:dc9002fc200bed597d5d34e90c752b74df516d592db162f756cc52836b38fe0e", size = 9504918, upload-time = "2023-10-23T13:47:42.679Z" }, + { url = "https://files.pythonhosted.org/packages/61/2e/5bbf3c9689d2911b65297fb5861c4257e54c797b3158c9fca8a5c576644b/scikit_learn-1.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d08ada33e955c54355d909b9c06a4789a729977f165b8bae6f225ff0a60ec4a", size = 10358127, upload-time = "2023-10-23T13:47:45.96Z" }, + { url = "https://files.pythonhosted.org/packages/25/89/dce01a35d354159dcc901e3c7e7eb3fe98de5cb3639c6cd39518d8830caa/scikit_learn-1.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:763f0ae4b79b0ff9cca0bf3716bcc9915bdacff3cebea15ec79652d1cc4fa5c9", size = 10890482, upload-time = "2023-10-23T13:47:49.046Z" }, + { url = "https://files.pythonhosted.org/packages/1c/49/30ffcac5af06d08dfdd27da322ce31a373b733711bb272941877c1e4794a/scikit_learn-1.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:ed932ea780517b00dae7431e031faae6b49b20eb6950918eb83bd043237950e0", size = 9331050, upload-time = "2023-10-23T13:47:52.246Z" }, +] + +[[package]] +name = "scikit-learn" +version = "1.6.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "joblib", version = "1.5.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "scipy", version = "1.13.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "threadpoolctl", version = "3.6.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9e/a5/4ae3b3a0755f7b35a280ac90b28817d1f380318973cff14075ab41ef50d9/scikit_learn-1.6.1.tar.gz", hash = "sha256:b4fc2525eca2c69a59260f583c56a7557c6ccdf8deafdba6e060f94c1c59738e", size = 7068312, upload-time = "2025-01-10T08:07:55.348Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/3a/f4597eb41049110b21ebcbb0bcb43e4035017545daa5eedcfeb45c08b9c5/scikit_learn-1.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d056391530ccd1e501056160e3c9673b4da4805eb67eb2bdf4e983e1f9c9204e", size = 12067702, upload-time = "2025-01-10T08:05:56.515Z" }, + { url = "https://files.pythonhosted.org/packages/37/19/0423e5e1fd1c6ec5be2352ba05a537a473c1677f8188b9306097d684b327/scikit_learn-1.6.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:0c8d036eb937dbb568c6242fa598d551d88fb4399c0344d95c001980ec1c7d36", size = 11112765, upload-time = "2025-01-10T08:06:00.272Z" }, + { url = "https://files.pythonhosted.org/packages/70/95/d5cb2297a835b0f5fc9a77042b0a2d029866379091ab8b3f52cc62277808/scikit_learn-1.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8634c4bd21a2a813e0a7e3900464e6d593162a29dd35d25bdf0103b3fce60ed5", size = 12643991, upload-time = "2025-01-10T08:06:04.813Z" }, + { url = "https://files.pythonhosted.org/packages/b7/91/ab3c697188f224d658969f678be86b0968ccc52774c8ab4a86a07be13c25/scikit_learn-1.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:775da975a471c4f6f467725dff0ced5c7ac7bda5e9316b260225b48475279a1b", size = 13497182, upload-time = "2025-01-10T08:06:08.42Z" }, + { url = "https://files.pythonhosted.org/packages/17/04/d5d556b6c88886c092cc989433b2bab62488e0f0dafe616a1d5c9cb0efb1/scikit_learn-1.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:8a600c31592bd7dab31e1c61b9bbd6dea1b3433e67d264d17ce1017dbdce8002", size = 11125517, upload-time = "2025-01-10T08:06:12.783Z" }, + { url = "https://files.pythonhosted.org/packages/6c/2a/e291c29670795406a824567d1dfc91db7b699799a002fdaa452bceea8f6e/scikit_learn-1.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:72abc587c75234935e97d09aa4913a82f7b03ee0b74111dcc2881cba3c5a7b33", size = 12102620, upload-time = "2025-01-10T08:06:16.675Z" }, + { url = "https://files.pythonhosted.org/packages/25/92/ee1d7a00bb6b8c55755d4984fd82608603a3cc59959245068ce32e7fb808/scikit_learn-1.6.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:b3b00cdc8f1317b5f33191df1386c0befd16625f49d979fe77a8d44cae82410d", size = 11116234, upload-time = "2025-01-10T08:06:21.83Z" }, + { url = "https://files.pythonhosted.org/packages/30/cd/ed4399485ef364bb25f388ab438e3724e60dc218c547a407b6e90ccccaef/scikit_learn-1.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc4765af3386811c3ca21638f63b9cf5ecf66261cc4815c1db3f1e7dc7b79db2", size = 12592155, upload-time = "2025-01-10T08:06:27.309Z" }, + { url = "https://files.pythonhosted.org/packages/a8/f3/62fc9a5a659bb58a03cdd7e258956a5824bdc9b4bb3c5d932f55880be569/scikit_learn-1.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25fc636bdaf1cc2f4a124a116312d837148b5e10872147bdaf4887926b8c03d8", size = 13497069, upload-time = "2025-01-10T08:06:32.515Z" }, + { url = "https://files.pythonhosted.org/packages/a1/a6/c5b78606743a1f28eae8f11973de6613a5ee87366796583fb74c67d54939/scikit_learn-1.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:fa909b1a36e000a03c382aade0bd2063fd5680ff8b8e501660c0f59f021a6415", size = 11139809, upload-time = "2025-01-10T08:06:35.514Z" }, + { url = "https://files.pythonhosted.org/packages/0a/18/c797c9b8c10380d05616db3bfb48e2a3358c767affd0857d56c2eb501caa/scikit_learn-1.6.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:926f207c804104677af4857b2c609940b743d04c4c35ce0ddc8ff4f053cddc1b", size = 12104516, upload-time = "2025-01-10T08:06:40.009Z" }, + { url = "https://files.pythonhosted.org/packages/c4/b7/2e35f8e289ab70108f8cbb2e7a2208f0575dc704749721286519dcf35f6f/scikit_learn-1.6.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2c2cae262064e6a9b77eee1c8e768fc46aa0b8338c6a8297b9b6759720ec0ff2", size = 11167837, upload-time = "2025-01-10T08:06:43.305Z" }, + { url = "https://files.pythonhosted.org/packages/a4/f6/ff7beaeb644bcad72bcfd5a03ff36d32ee4e53a8b29a639f11bcb65d06cd/scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1061b7c028a8663fb9a1a1baf9317b64a257fcb036dae5c8752b2abef31d136f", size = 12253728, upload-time = "2025-01-10T08:06:47.618Z" }, + { url = "https://files.pythonhosted.org/packages/29/7a/8bce8968883e9465de20be15542f4c7e221952441727c4dad24d534c6d99/scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e69fab4ebfc9c9b580a7a80111b43d214ab06250f8a7ef590a4edf72464dd86", size = 13147700, upload-time = "2025-01-10T08:06:50.888Z" }, + { url = "https://files.pythonhosted.org/packages/62/27/585859e72e117fe861c2079bcba35591a84f801e21bc1ab85bce6ce60305/scikit_learn-1.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:70b1d7e85b1c96383f872a519b3375f92f14731e279a7b4c6cfd650cf5dffc52", size = 11110613, upload-time = "2025-01-10T08:06:54.115Z" }, + { url = "https://files.pythonhosted.org/packages/2e/59/8eb1872ca87009bdcdb7f3cdc679ad557b992c12f4b61f9250659e592c63/scikit_learn-1.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2ffa1e9e25b3d93990e74a4be2c2fc61ee5af85811562f1288d5d055880c4322", size = 12010001, upload-time = "2025-01-10T08:06:58.613Z" }, + { url = "https://files.pythonhosted.org/packages/9d/05/f2fc4effc5b32e525408524c982c468c29d22f828834f0625c5ef3d601be/scikit_learn-1.6.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:dc5cf3d68c5a20ad6d571584c0750ec641cc46aeef1c1507be51300e6003a7e1", size = 11096360, upload-time = "2025-01-10T08:07:01.556Z" }, + { url = "https://files.pythonhosted.org/packages/c8/e4/4195d52cf4f113573fb8ebc44ed5a81bd511a92c0228889125fac2f4c3d1/scikit_learn-1.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c06beb2e839ecc641366000ca84f3cf6fa9faa1777e29cf0c04be6e4d096a348", size = 12209004, upload-time = "2025-01-10T08:07:06.931Z" }, + { url = "https://files.pythonhosted.org/packages/94/be/47e16cdd1e7fcf97d95b3cb08bde1abb13e627861af427a3651fcb80b517/scikit_learn-1.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8ca8cb270fee8f1f76fa9bfd5c3507d60c6438bbee5687f81042e2bb98e5a97", size = 13171776, upload-time = "2025-01-10T08:07:11.715Z" }, + { url = "https://files.pythonhosted.org/packages/34/b0/ca92b90859070a1487827dbc672f998da95ce83edce1270fc23f96f1f61a/scikit_learn-1.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:7a1c43c8ec9fde528d664d947dc4c0789be4077a3647f232869f41d9bf50e0fb", size = 11071865, upload-time = "2025-01-10T08:07:16.088Z" }, + { url = "https://files.pythonhosted.org/packages/12/ae/993b0fb24a356e71e9a894e42b8a9eec528d4c70217353a1cd7a48bc25d4/scikit_learn-1.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a17c1dea1d56dcda2fac315712f3651a1fea86565b64b48fa1bc090249cbf236", size = 11955804, upload-time = "2025-01-10T08:07:20.385Z" }, + { url = "https://files.pythonhosted.org/packages/d6/54/32fa2ee591af44507eac86406fa6bba968d1eb22831494470d0a2e4a1eb1/scikit_learn-1.6.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6a7aa5f9908f0f28f4edaa6963c0a6183f1911e63a69aa03782f0d924c830a35", size = 11100530, upload-time = "2025-01-10T08:07:23.675Z" }, + { url = "https://files.pythonhosted.org/packages/3f/58/55856da1adec655bdce77b502e94a267bf40a8c0b89f8622837f89503b5a/scikit_learn-1.6.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0650e730afb87402baa88afbf31c07b84c98272622aaba002559b614600ca691", size = 12433852, upload-time = "2025-01-10T08:07:26.817Z" }, + { url = "https://files.pythonhosted.org/packages/ff/4f/c83853af13901a574f8f13b645467285a48940f185b690936bb700a50863/scikit_learn-1.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:3f59fe08dc03ea158605170eb52b22a105f238a5d512c4470ddeca71feae8e5f", size = 11337256, upload-time = "2025-01-10T08:07:31.084Z" }, + { url = "https://files.pythonhosted.org/packages/d2/37/b305b759cc65829fe1b8853ff3e308b12cdd9d8884aa27840835560f2b42/scikit_learn-1.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6849dd3234e87f55dce1db34c89a810b489ead832aaf4d4550b7ea85628be6c1", size = 12101868, upload-time = "2025-01-10T08:07:34.189Z" }, + { url = "https://files.pythonhosted.org/packages/83/74/f64379a4ed5879d9db744fe37cfe1978c07c66684d2439c3060d19a536d8/scikit_learn-1.6.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:e7be3fa5d2eb9be7d77c3734ff1d599151bb523674be9b834e8da6abe132f44e", size = 11144062, upload-time = "2025-01-10T08:07:37.67Z" }, + { url = "https://files.pythonhosted.org/packages/fd/dc/d5457e03dc9c971ce2b0d750e33148dd060fefb8b7dc71acd6054e4bb51b/scikit_learn-1.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44a17798172df1d3c1065e8fcf9019183f06c87609b49a124ebdf57ae6cb0107", size = 12693173, upload-time = "2025-01-10T08:07:42.713Z" }, + { url = "https://files.pythonhosted.org/packages/79/35/b1d2188967c3204c78fa79c9263668cf1b98060e8e58d1a730fe5b2317bb/scikit_learn-1.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8b7a3b86e411e4bce21186e1c180d792f3d99223dcfa3b4f597ecc92fa1a422", size = 13518605, upload-time = "2025-01-10T08:07:46.551Z" }, + { url = "https://files.pythonhosted.org/packages/fb/d8/8d603bdd26601f4b07e2363032b8565ab82eb857f93d86d0f7956fcf4523/scikit_learn-1.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:7a73d457070e3318e32bdb3aa79a8d990474f19035464dfd8bede2883ab5dc3b", size = 11155078, upload-time = "2025-01-10T08:07:51.376Z" }, +] + +[[package]] +name = "scikit-learn" +version = "1.7.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", +] +dependencies = [ + { name = "joblib", version = "1.5.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "threadpoolctl", version = "3.6.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/41/84/5f4af978fff619706b8961accac84780a6d298d82a8873446f72edb4ead0/scikit_learn-1.7.1.tar.gz", hash = "sha256:24b3f1e976a4665aa74ee0fcaac2b8fccc6ae77c8e07ab25da3ba6d3292b9802", size = 7190445, upload-time = "2025-07-18T08:01:54.5Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/74/88/0dd5be14ef19f2d80a77780be35a33aa94e8a3b3223d80bee8892a7832b4/scikit_learn-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:406204dd4004f0517f0b23cf4b28c6245cbd51ab1b6b78153bc784def214946d", size = 9338868, upload-time = "2025-07-18T08:01:00.25Z" }, + { url = "https://files.pythonhosted.org/packages/fd/52/3056b6adb1ac58a0bc335fc2ed2fcf599974d908855e8cb0ca55f797593c/scikit_learn-1.7.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:16af2e44164f05d04337fd1fc3ae7c4ea61fd9b0d527e22665346336920fe0e1", size = 8655943, upload-time = "2025-07-18T08:01:02.974Z" }, + { url = "https://files.pythonhosted.org/packages/fb/a4/e488acdece6d413f370a9589a7193dac79cd486b2e418d3276d6ea0b9305/scikit_learn-1.7.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2f2e78e56a40c7587dea9a28dc4a49500fa2ead366869418c66f0fd75b80885c", size = 9652056, upload-time = "2025-07-18T08:01:04.978Z" }, + { url = "https://files.pythonhosted.org/packages/18/41/bceacec1285b94eb9e4659b24db46c23346d7e22cf258d63419eb5dec6f7/scikit_learn-1.7.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b62b76ad408a821475b43b7bb90a9b1c9a4d8d125d505c2df0539f06d6e631b1", size = 9473691, upload-time = "2025-07-18T08:01:07.006Z" }, + { url = "https://files.pythonhosted.org/packages/12/7b/e1ae4b7e1dd85c4ca2694ff9cc4a9690970fd6150d81b975e6c5c6f8ee7c/scikit_learn-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:9963b065677a4ce295e8ccdee80a1dd62b37249e667095039adcd5bce6e90deb", size = 8900873, upload-time = "2025-07-18T08:01:09.332Z" }, + { url = "https://files.pythonhosted.org/packages/b4/bd/a23177930abd81b96daffa30ef9c54ddbf544d3226b8788ce4c3ef1067b4/scikit_learn-1.7.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:90c8494ea23e24c0fb371afc474618c1019dc152ce4a10e4607e62196113851b", size = 9334838, upload-time = "2025-07-18T08:01:11.239Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a1/d3a7628630a711e2ac0d1a482910da174b629f44e7dd8cfcd6924a4ef81a/scikit_learn-1.7.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:bb870c0daf3bf3be145ec51df8ac84720d9972170786601039f024bf6d61a518", size = 8651241, upload-time = "2025-07-18T08:01:13.234Z" }, + { url = "https://files.pythonhosted.org/packages/26/92/85ec172418f39474c1cd0221d611345d4f433fc4ee2fc68e01f524ccc4e4/scikit_learn-1.7.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:40daccd1b5623f39e8943ab39735cadf0bdce80e67cdca2adcb5426e987320a8", size = 9718677, upload-time = "2025-07-18T08:01:15.649Z" }, + { url = "https://files.pythonhosted.org/packages/df/ce/abdb1dcbb1d2b66168ec43b23ee0cee356b4cc4100ddee3943934ebf1480/scikit_learn-1.7.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:30d1f413cfc0aa5a99132a554f1d80517563c34a9d3e7c118fde2d273c6fe0f7", size = 9511189, upload-time = "2025-07-18T08:01:18.013Z" }, + { url = "https://files.pythonhosted.org/packages/b2/3b/47b5eaee01ef2b5a80ba3f7f6ecf79587cb458690857d4777bfd77371c6f/scikit_learn-1.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:c711d652829a1805a95d7fe96654604a8f16eab5a9e9ad87b3e60173415cb650", size = 8914794, upload-time = "2025-07-18T08:01:20.357Z" }, + { url = "https://files.pythonhosted.org/packages/cb/16/57f176585b35ed865f51b04117947fe20f130f78940c6477b6d66279c9c2/scikit_learn-1.7.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3cee419b49b5bbae8796ecd690f97aa412ef1674410c23fc3257c6b8b85b8087", size = 9260431, upload-time = "2025-07-18T08:01:22.77Z" }, + { url = "https://files.pythonhosted.org/packages/67/4e/899317092f5efcab0e9bc929e3391341cec8fb0e816c4789686770024580/scikit_learn-1.7.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2fd8b8d35817b0d9ebf0b576f7d5ffbbabdb55536b0655a8aaae629d7ffd2e1f", size = 8637191, upload-time = "2025-07-18T08:01:24.731Z" }, + { url = "https://files.pythonhosted.org/packages/f3/1b/998312db6d361ded1dd56b457ada371a8d8d77ca2195a7d18fd8a1736f21/scikit_learn-1.7.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:588410fa19a96a69763202f1d6b7b91d5d7a5d73be36e189bc6396bfb355bd87", size = 9486346, upload-time = "2025-07-18T08:01:26.713Z" }, + { url = "https://files.pythonhosted.org/packages/ad/09/a2aa0b4e644e5c4ede7006748f24e72863ba2ae71897fecfd832afea01b4/scikit_learn-1.7.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e3142f0abe1ad1d1c31a2ae987621e41f6b578144a911ff4ac94781a583adad7", size = 9290988, upload-time = "2025-07-18T08:01:28.938Z" }, + { url = "https://files.pythonhosted.org/packages/15/fa/c61a787e35f05f17fc10523f567677ec4eeee5f95aa4798dbbbcd9625617/scikit_learn-1.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:3ddd9092c1bd469acab337d87930067c87eac6bd544f8d5027430983f1e1ae88", size = 8735568, upload-time = "2025-07-18T08:01:30.936Z" }, + { url = "https://files.pythonhosted.org/packages/52/f8/e0533303f318a0f37b88300d21f79b6ac067188d4824f1047a37214ab718/scikit_learn-1.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b7839687fa46d02e01035ad775982f2470be2668e13ddd151f0f55a5bf123bae", size = 9213143, upload-time = "2025-07-18T08:01:32.942Z" }, + { url = "https://files.pythonhosted.org/packages/71/f3/f1df377d1bdfc3e3e2adc9c119c238b182293e6740df4cbeac6de2cc3e23/scikit_learn-1.7.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:a10f276639195a96c86aa572ee0698ad64ee939a7b042060b98bd1930c261d10", size = 8591977, upload-time = "2025-07-18T08:01:34.967Z" }, + { url = "https://files.pythonhosted.org/packages/99/72/c86a4cd867816350fe8dee13f30222340b9cd6b96173955819a5561810c5/scikit_learn-1.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:13679981fdaebc10cc4c13c43344416a86fcbc61449cb3e6517e1df9d12c8309", size = 9436142, upload-time = "2025-07-18T08:01:37.397Z" }, + { url = "https://files.pythonhosted.org/packages/e8/66/277967b29bd297538dc7a6ecfb1a7dce751beabd0d7f7a2233be7a4f7832/scikit_learn-1.7.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4f1262883c6a63f067a980a8cdd2d2e7f2513dddcef6a9eaada6416a7a7cbe43", size = 9282996, upload-time = "2025-07-18T08:01:39.721Z" }, + { url = "https://files.pythonhosted.org/packages/e2/47/9291cfa1db1dae9880420d1e07dbc7e8dd4a7cdbc42eaba22512e6bde958/scikit_learn-1.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:ca6d31fb10e04d50bfd2b50d66744729dbb512d4efd0223b864e2fdbfc4cee11", size = 8707418, upload-time = "2025-07-18T08:01:42.124Z" }, + { url = "https://files.pythonhosted.org/packages/61/95/45726819beccdaa34d3362ea9b2ff9f2b5d3b8bf721bd632675870308ceb/scikit_learn-1.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:781674d096303cfe3d351ae6963ff7c958db61cde3421cd490e3a5a58f2a94ae", size = 9561466, upload-time = "2025-07-18T08:01:44.195Z" }, + { url = "https://files.pythonhosted.org/packages/ee/1c/6f4b3344805de783d20a51eb24d4c9ad4b11a7f75c1801e6ec6d777361fd/scikit_learn-1.7.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:10679f7f125fe7ecd5fad37dd1aa2daae7e3ad8df7f3eefa08901b8254b3e12c", size = 9040467, upload-time = "2025-07-18T08:01:46.671Z" }, + { url = "https://files.pythonhosted.org/packages/6f/80/abe18fe471af9f1d181904203d62697998b27d9b62124cd281d740ded2f9/scikit_learn-1.7.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1f812729e38c8cb37f760dce71a9b83ccfb04f59b3dca7c6079dcdc60544fa9e", size = 9532052, upload-time = "2025-07-18T08:01:48.676Z" }, + { url = "https://files.pythonhosted.org/packages/14/82/b21aa1e0c4cee7e74864d3a5a721ab8fcae5ca55033cb6263dca297ed35b/scikit_learn-1.7.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:88e1a20131cf741b84b89567e1717f27a2ced228e0f29103426102bc2e3b8ef7", size = 9361575, upload-time = "2025-07-18T08:01:50.639Z" }, + { url = "https://files.pythonhosted.org/packages/f2/20/f4777fcd5627dc6695fa6b92179d0edb7a3ac1b91bcd9a1c7f64fa7ade23/scikit_learn-1.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:b1bd1d919210b6a10b7554b717c9000b5485aa95a1d0f177ae0d7ee8ec750da5", size = 9277310, upload-time = "2025-07-18T08:01:52.547Z" }, +] + [[package]] name = "scipy" version = "1.10.1" @@ -7038,8 +7809,8 @@ resolution-markers = [ "python_full_version == '3.10.*'", ] dependencies = [ + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0f/37/6964b830433e654ec7485e45a00fc9a27cf868d622838f6b6d9c5ec0d532/scipy-1.15.3.tar.gz", hash = "sha256:eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf", size = 59419214, upload-time = "2025-05-08T16:13:05.955Z" } wheels = [ @@ -7194,8 +7965,8 @@ resolution-markers = [ "python_full_version == '3.10.*'", ] dependencies = [ + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ca/3c/2da625233f4e605155926566c0e7ea8dda361877f48e8b1655e53456f252/shapely-2.1.1.tar.gz", hash = "sha256:500621967f2ffe9642454808009044c21e5b35db89ce69f8a2042c2ffd0e2772", size = 315422, upload-time = "2025-05-19T11:04:41.265Z" } wheels = [ @@ -7464,9 +8235,8 @@ resolution-markers = [ "python_full_version == '3.9.*'", ] dependencies = [ - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "packaging", marker = "python_full_version >= '3.9'" }, { name = "pandas", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "patsy", marker = "python_full_version >= '3.9'" }, @@ -7531,6 +8301,45 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/9e/2064975477fdc887e47ad42157e214526dcad8f317a948dee17e1659a62f/terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0", size = 14154, upload-time = "2024-03-12T14:34:36.569Z" }, ] +[[package]] +name = "texttable" +version = "1.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1c/dc/0aff23d6036a4d3bf4f1d8c8204c5c79c4437e25e0ae94ffe4bbb55ee3c2/texttable-1.7.0.tar.gz", hash = "sha256:2d2068fb55115807d3ac77a4ca68fa48803e84ebb0ee2340f858107a36522638", size = 12831, upload-time = "2023-10-03T09:48:12.272Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/24/99/4772b8e00a136f3e01236de33b0efda31ee7077203ba5967fcc76da94d65/texttable-1.7.0-py2.py3-none-any.whl", hash = "sha256:72227d592c82b3d7f672731ae73e4d1f88cd8e2ef5b075a7a7f01a23a3743917", size = 10768, upload-time = "2023-10-03T09:48:10.434Z" }, +] + +[[package]] +name = "threadpoolctl" +version = "3.5.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/55/b5148dcbf72f5cde221f8bfe3b6a540da7aa1842f6b491ad979a6c8b84af/threadpoolctl-3.5.0.tar.gz", hash = "sha256:082433502dd922bf738de0d8bcc4fdcbf0979ff44c42bd40f5af8a282f6fa107", size = 41936, upload-time = "2024-04-29T13:50:16.544Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/2c/ffbf7a134b9ab11a67b0cf0726453cedd9c5043a4fe7a35d1cefa9a1bcfb/threadpoolctl-3.5.0-py3-none-any.whl", hash = "sha256:56c1e26c150397e58c4926da8eeee87533b1e32bef131bd4bf6a2f45f3185467", size = 18414, upload-time = "2024-04-29T13:50:14.014Z" }, +] + +[[package]] +name = "threadpoolctl" +version = "3.6.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/b7/4d/08c89e34946fce2aec4fbb45c9016efd5f4d7f24af8e5d93296e935631d8/threadpoolctl-3.6.0.tar.gz", hash = "sha256:8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e", size = 21274, upload-time = "2025-03-13T13:49:23.031Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638, upload-time = "2025-03-13T13:49:21.846Z" }, +] + [[package]] name = "tifffile" version = "2023.7.10" @@ -7588,7 +8397,7 @@ resolution-markers = [ "python_full_version == '3.11.*'", ] dependencies = [ - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/33/cc/deed7dd69d4029adba8e95214f8bf65fca8bc6b8426e27d056e1de624206/tifffile-2025.6.1.tar.gz", hash = "sha256:63cff7cf7305c26e3f3451c0b05fd95a09252beef4f1663227d4b70cb75c5fdb", size = 369769, upload-time = "2025-06-02T01:41:44.083Z" } wheels = [ @@ -7728,6 +8537,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/55/a7/535c44c7bea4578e48281d83c615219f3ab19e6abc67625ef637c73987be/tornado-6.5.1-cp39-abi3-win_arm64.whl", hash = "sha256:02420a0eb7bf617257b9935e2b754d1b63897525d8a289c9d65690d580b4dcf7", size = 443596, upload-time = "2025-05-22T18:15:37.433Z" }, ] +[[package]] +name = "tqdm" +version = "4.67.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737, upload-time = "2024-11-24T20:12:22.481Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540, upload-time = "2024-11-24T20:12:19.698Z" }, +] + [[package]] name = "traitlets" version = "5.14.3" @@ -7868,6 +8689,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", size = 347839, upload-time = "2025-03-23T13:54:41.845Z" }, ] +[[package]] +name = "umap" +version = "0.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4b/46/08ab68936625400fe690684428d4db4764f49b406782cc133df1d0299d06/umap-0.1.1.tar.gz", hash = "sha256:5d08c1a335cc7ee175811a99dc9356d3d4b8567ad082e2b1b205198cf27c4256", size = 3191, upload-time = "2016-01-20T16:33:11.724Z" } + [[package]] name = "uri-template" version = "1.3.0" @@ -8687,6 +9514,48 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743, upload-time = "2025-03-05T20:03:39.41Z" }, ] +[[package]] +name = "werkzeug" +version = "3.0.6" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "markupsafe", version = "2.1.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d4/f9/0ba83eaa0df9b9e9d1efeb2ea351d0677c37d41ee5d0f91e98423c7281c9/werkzeug-3.0.6.tar.gz", hash = "sha256:a8dd59d4de28ca70471a34cba79bed5f7ef2e036a76b3ab0835474246eb41f8d", size = 805170, upload-time = "2024-10-25T18:52:31.688Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6c/69/05837f91dfe42109203ffa3e488214ff86a6d68b2ed6c167da6cdc42349b/werkzeug-3.0.6-py3-none-any.whl", hash = "sha256:1bc0c2310d2fbb07b1dd1105eba2f7af72f322e1e455f2f93c993bee8c8a5f17", size = 227979, upload-time = "2024-10-25T18:52:30.129Z" }, +] + +[[package]] +name = "werkzeug" +version = "3.1.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "markupsafe", version = "3.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9f/69/83029f1f6300c5fb2471d621ab06f6ec6b3324685a2ce0f9777fd4a8b71e/werkzeug-3.1.3.tar.gz", hash = "sha256:60723ce945c19328679790e3282cc758aa4a6040e4bb330f53d30fa546d44746", size = 806925, upload-time = "2024-11-08T15:52:18.093Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/52/24/ab44c871b0f07f491e5d2ad12c9bd7358e527510618cb1b803a88e986db1/werkzeug-3.1.3-py3-none-any.whl", hash = "sha256:54b78bf3716d19a65be4fceccc0d1d7b89e608834989dfae50ea87564639213e", size = 224498, upload-time = "2024-11-08T15:52:16.132Z" }, +] + +[[package]] +name = "wget" +version = "3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/47/6a/62e288da7bcda82b935ff0c6cfe542970f04e29c756b0e147251b2fb251f/wget-3.2.zip", hash = "sha256:35e630eca2aa50ce998b9b1a127bb26b30dfee573702782aa982f875e3f16061", size = 10857, upload-time = "2015-10-22T15:26:37.51Z" } + [[package]] name = "wheel" version = "0.45.1" @@ -8752,8 +9621,8 @@ resolution-markers = [ "python_full_version == '3.10.*'", ] dependencies = [ + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "packaging", marker = "python_full_version >= '3.10'" }, { name = "pandas", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] @@ -8791,6 +9660,8 @@ name = "zipp" version = "3.23.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", ] From 5cad01388b6f5d90549d731f7d53d1cf12fa550b Mon Sep 17 00:00:00 2001 From: Liam Connors Date: Wed, 30 Jul 2025 14:26:10 -0400 Subject: [PATCH 13/16] use _parse_md function --- bin/check-all-md.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/bin/check-all-md.py b/bin/check-all-md.py index 95fe75f3d33..c06b00e3393 100644 --- a/bin/check-all-md.py +++ b/bin/check-all-md.py @@ -1,16 +1,15 @@ from pathlib import Path import os -import re import sys +from run_markdown import _parse_md -PAT = re.compile(r"^```python\n(.+?)\n```", re.MULTILINE | re.DOTALL) TMP_FILE = "tmp.py" for filename in sys.argv[1:]: content = Path(filename).read_text() - blocks = PAT.findall(content) - for i, b in enumerate(blocks): - Path(TMP_FILE).write_text(b.strip()) + blocks = _parse_md(content) + for i, block in enumerate(blocks): + Path(TMP_FILE).write_text(block["code"].strip()) sys.stdout.write(f"\n{'=' * 40}\n{filename}: {i}\n") sys.stdout.flush() sys.stdout.write(f"{'-' * 40}\n") From 2e38a9a4ec34a400653e96e8879380bda88b2a92 Mon Sep 17 00:00:00 2001 From: Liam Connors Date: Wed, 30 Jul 2025 14:58:06 -0400 Subject: [PATCH 14/16] don't process code block in region sections --- bin/run_markdown.py | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/bin/run_markdown.py b/bin/run_markdown.py index 887431d361b..d427c03c650 100644 --- a/bin/run_markdown.py +++ b/bin/run_markdown.py @@ -162,17 +162,26 @@ def _parse_md(content): blocks = [] current_block = None in_code_block = False + in_region_block = False for i, line in enumerate(lines): + # Check for region start/end markers + if "

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy