Skip to content

switch to ruff #5218

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
48 changes: 20 additions & 28 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ commands:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
source .venv/bin/activate
uv pip install .
uv pip install -r ./test_requirements/requirements_core.txt
uv sync --extra dev_core
- run:
name: List installed packages and python version
command: |
Expand Down Expand Up @@ -56,8 +55,7 @@ commands:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
source .venv/bin/activate
uv pip install .
uv pip install -r ./test_requirements/requirements_optional.txt
uv sync --extra dev_optional
- when:
condition:
Expand All @@ -70,8 +68,7 @@ commands:
name: Install pandas
command: |
source .venv/bin/activate
uv pip install pip
python -m pip install pandas==<<parameters.pandas_version>> numpy==<<parameters.numpy_version>>
uv pip install pandas==<<parameters.pandas_version>> numpy==<<parameters.numpy_version>>
- run:
name: Test core
Expand Down Expand Up @@ -125,8 +122,7 @@ commands:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
source .venv/bin/activate
uv pip install .
uv pip install -r ./test_requirements/requirements_optional.txt
uv pip install .[dev_optional]
# Install Kaleido v0 instead of the v1 specified in requirements_optional.txt
uv pip uninstall kaleido
uv pip install kaleido==0.2.1
Expand All @@ -151,16 +147,16 @@ jobs:
steps:
- checkout
- run:
name: Install black
name: Install ruff
command: |
python -m venv venv
. venv/bin/activate
pip install black==25.1.0
uv venv
source .venv/bin/activate
uv sync --extra dev_core
- run:
name: Check formatting with black
name: Check handwritten code with ruff
command: |
. venv/bin/activate
black --check . --exclude venv
source .venv/bin/activate
ruff format .
test_core_py:
parameters:
Expand Down Expand Up @@ -226,22 +222,20 @@ jobs:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
source .venv/bin/activate
uv pip install -e .
uv pip install -r test_requirements/requirements_optional.txt
uv sync --extra dev_optional
- run:
name: Build html figures (Pandas 2)
name: Build HTML figures (Pandas 2)
command: |
source .venv/bin/activate
python tests/percy/plotly-express.py
- run:
name: Build html figures (Pandas 1) and compare
name: Build HTML figures (Pandas 1) and compare
command: |
source .venv/bin/activate
mkdir tests/percy/pandas2
mv tests/percy/*.html tests/percy/pandas2/
uv pip install pip
python -m pip install pandas==1.5.3 numpy==1.26.4
uv pip install pandas==1.5.3 numpy==1.26.4
python tests/percy/plotly-express.py
python tests/percy/compare-pandas.py
rm -rf tests/percy/pandas2
Expand Down Expand Up @@ -273,8 +267,7 @@ jobs:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
source .venv/bin/activate
uv pip install -e .
uv pip install -r ./test_requirements/requirements_core.txt black inflect jupyterlab
uv sync --extra dev_optional
- run:
name: Update plotly.js to dev
command: |
Expand All @@ -291,7 +284,7 @@ jobs:
name: Build source distribution packages
command: |
source .venv/bin/activate
uv pip install build
uv sync --extra dev_build
python -m build --sdist --wheel -o dist
when: always
- store_artifacts:
Expand All @@ -312,8 +305,7 @@ jobs:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
source .venv/bin/activate
uv pip install build
uv pip install jupyter
uv sync --extra dev_build
cd js
npm ci
npm run build
Expand Down Expand Up @@ -439,6 +431,7 @@ jobs:
- store_artifacts:
path: doc/build
destination: doc/build

workflows:
code_formatting:
jobs:
Expand All @@ -449,7 +442,6 @@ workflows:
release_build:
jobs:
- full_build

build:
jobs:
- test_core_py:
Expand Down Expand Up @@ -483,4 +475,4 @@ workflows:
python_version:
- "3.12"
- python_311_percy
- build-doc
- build-doc
12 changes: 7 additions & 5 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
Thanks for your interest in Plotly.py!
Thanks for your interest in Plotly.py.
Before opening an issue, please:

Before opening an issue, please search for existing and closed issues :)
- Use the [latest version](https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md) of plotly.py in your report unless not applicable.
- Search for existing and closed issues.
- Include a minimal reproducible example with bug reports.

**Please** accompany bug reports with a reproducible example. Please use the [latest version](https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md) of plotly.py in your report unless not applicable.

Note that GitHub Issues are meant to be used for bug reports and feature requests only. Implementation or usage questions should be asked on [community.plotly.com](https://community.plotly.com/c/graphing-libraries/python/10) or on Stack Overflow (tagged [`plotly`](https://stackoverflow.com/questions/tagged/plotly)).
Note that GitHub Issues are meant to be used for bug reports and feature requests.
Questions about usage should be asked on [community.plotly.com](https://community.plotly.com/c/graphing-libraries/python/10).
58 changes: 29 additions & 29 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,38 @@
<!--
Please uncomment this block and take a look at this checklist if your PR is making substantial changes to **documentation**/impacts files in the `doc` directory. Check all that apply to your PR, and leave the rest unchecked to discuss with your reviewer! Not all boxes must be checked for every PR :)
Please uncomment this block and fill in this checklist if your PR makes substantial changes to documentation in the `doc` directory.
Not all boxes must be checked for every PR:
check those that apply to your PR and leave the rest unchecked to discuss with your reviewer.

If your PR modifies code of the `plotly` package, we have a different checklist
below :-).
If your PR modifies code of the `plotly` package, we have a different checklist below.

### Documentation PR
## Documentation PR

- [ ] I've [seen the `doc/README.md` file](https://github.com/plotly/plotly.py/blob/main/doc/README.md)
- [ ] This change runs in the current version of Plotly on PyPI and targets the `doc-prod` branch OR it targets the `main` branch
- [ ] If this PR modifies the first example in a page or adds a new one, it is a `px` example if at all possible
- [ ] Every new/modified example has a descriptive title and motivating sentence or paragraph
- [ ] Every new/modified example is independently runnable
- [ ] Every new/modified example is optimized for short line count and focuses on the Plotly/visualization-related aspects of the example rather than the computation required to produce the data being visualized
- [ ] Meaningful/relatable datasets are used for all new examples instead of randomly-generated data where possible
- [ ] The random seed is set if using randomly-generated data in new/modified examples
- [ ] New/modified remote datasets are loaded from https://plotly.github.io/datasets and added to https://github.com/plotly/datasets
- [ ] Large computations are avoided in the new/modified examples in favour of loading remote datasets that represent the output of such computations
- [ ] Imports are `plotly.graph_objects as go` / `plotly.express as px` / `plotly.io as pio`
- [ ] Data frames are always called `df`
- [ ] `fig = <something>` call is high up in each new/modified example (either `px.<something>` or `make_subplots` or `go.Figure`)
- [ ] Liberal use is made of `fig.add_*` and `fig.update_*` rather than `go.Figure(data=..., layout=...)` in every new/modified example
- [ ] Specific adders and updaters like `fig.add_shape` and `fig.update_xaxes` are used instead of big `fig.update_layout` calls in every new/modified example
- [ ] `fig.show()` is at the end of each new/modified example
- [ ] `plotly.plot()` and `plotly.iplot()` are not used in any new/modified example
- [ ] Hex codes for colors are not used in any new/modified example in favour of [these nice ones](https://github.com/plotly/plotly.py/issues/2192)
- [ ] I have seen the [`doc/README.md`](https://github.com/plotly/plotly.py/blob/main/doc/README.md) file.
- [ ] This change runs in the current version of Plotly on PyPI and targets the `doc-prod` branch OR it targets the `main` branch.
- [ ] If this PR modifies the first example in a page or adds a new one, it is a `px` example if at all possible.
- [ ] Every new/modified example has a descriptive title and motivating sentence or paragraph.
- [ ] Every new/modified example is independently runnable.
- [ ] Every new/modified example is optimized for short line count and focuses on the Plotly/visualization-related aspects of the example rather than the computation required to produce the data being visualized.
- [ ] Meaningful/relatable datasets are used for all new examples instead of randomly-generated data where possible.
- [ ] The random seed is set if using randomly-generated data.
- [ ] New/modified remote datasets are loaded from https://plotly.github.io/datasets and added to https://github.com/plotly/datasets.
- [ ] Large computations are avoided in the new/modified examples in favour of loading remote datasets that represent the output of such computations.
- [ ] Imports are `plotly.graph_objects as go`, `plotly.express as px`, and/or `plotly.io as pio`.
- [ ] Data frames are always called `df`.
- [ ] `fig = <something>` is called high up in each new/modified example (either `px.<something>` or `make_subplots` or `go.Figure`).
- [ ] Liberal use is made of `fig.add_*` and `fig.update_*` rather than `go.Figure(data=..., layout=...)`.
- [ ] Specific adders and updaters like `fig.add_shape` and `fig.update_xaxes` are used instead of big `fig.update_layout` calls.
- [ ] `fig.show()` is at the end of each example.
- [ ] `plotly.plot()` and `plotly.iplot()` are not used in any example.
- [ ] Named colors are used instead of hex codes wherever possible.
- [ ] Code blocks are marked with `&#96;&#96;&#96;python`.

## Code PR

- [ ] I have read through the [contributing notes](https://github.com/plotly/plotly.py/blob/main/CONTRIBUTING.md) and understand the structure of the package. In particular, if my PR modifies code of `plotly.graph_objects`, my modifications concern the `codegen` files and not generated files.
- [ ] I have added tests (if submitting a new feature or correcting a bug) or
modified existing tests.
- [ ] For a new feature, I have added documentation examples in an existing or
new tutorial notebook (please see the doc checklist as well).
- [ ] I have added a CHANGELOG entry if fixing/changing/adding anything substantial.
- [ ] For a new feature or a change in behaviour, I have updated the relevant docstrings in the code to describe the feature or behaviour (please see the doc checklist as well).
- [ ] I have read through the [contributing notes](https://github.com/plotly/plotly.py/blob/main/CONTRIBUTING.md) and understand the structure of the package. In particular, if my PR modifies code of `plotly.graph_objects`, my modifications concern the code generator and *not* the generated files.
- [ ] I have added tests or modified existing tests.
- [ ] For a new feature, I have added documentation examples (please see the doc checklist as well).
- [ ] I have added a CHANGELOG entry if changing anything substantial.
- [ ] For a new feature or a change in behavior, I have updated the relevant docstrings in the code.

-->
Loading