Skip to content

Enforce ruff rules (RUF) #1720

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 6 commits into
base: master
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
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions fsspec/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,21 @@

__all__ = [
"AbstractFileSystem",
"FSTimeoutError",
"Callback",
"FSMap",
"FSTimeoutError",
"available_compressions",
"available_protocols",
"caching",
"filesystem",
"register_implementation",
"get_filesystem_class",
"get_fs_token_paths",
"get_mapper",
"open",
"open_files",
"open_local",
"register_implementation",
"registry",
"caching",
"Callback",
"available_protocols",
"available_compressions",
"url_to_fs",
]

Expand Down
17 changes: 13 additions & 4 deletions fsspec/gui.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,8 +169,17 @@ def show(self, threads=False):
class SingleSelect(SigSlot):
"""A multiselect which only allows you to select one item for an event"""

signals = ["_selected", "selected"] # the first is internal
slots = ["set_options", "set_selection", "add", "clear", "select"]
signals: ClassVar[Sequence[str]] = [
"_selected",
"selected",
] # the first is internal
slots: ClassVar[Sequence[str]] = [
"set_options",
"set_selection",
"add",
"clear",
"select",
]

def __init__(self, **kwargs):
self.kwargs = kwargs
Expand Down Expand Up @@ -212,7 +221,7 @@ class FileSelector(SigSlot):
them as the output of a cell, or in a separate browser tab using ``.show()``.
"""

signals = [
signals: ClassVar[Sequence[str]] = [
"protocol_changed",
"selection_changed",
"directory_entered",
Expand All @@ -221,7 +230,7 @@ class FileSelector(SigSlot):
"go_clicked",
"filters_changed",
]
slots = ["set_filters", "go_home"]
slots: ClassVar[Sequence[str]] = ["set_filters", "go_home"]

def __init__(self, url=None, filters=None, ignore=None, kwargs=None):
"""
Expand Down
8 changes: 4 additions & 4 deletions fsspec/implementations/gist.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,16 +141,16 @@ def _get_kwargs_from_urls(path):
"""
so = infer_storage_options(path)
out = {}
if "username" in so and so["username"]:
if so.get("username"):
out["username"] = so["username"]
if "password" in so and so["password"]:
if so.get("password"):
out["token"] = so["password"]
if "host" in so and so["host"]:
if so.get("host"):
# We interpret 'host' as the gist ID
out["gist_id"] = so["host"]

# Extract SHA and filename from path
if "path" in so and so["path"]:
if so.get("path"):
path_parts = so["path"].rsplit("/", 2)[-2:]
if len(path_parts) == 2:
if path_parts[0]: # SHA present
Expand Down
6 changes: 3 additions & 3 deletions fsspec/implementations/http.py
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ async def _get_file(
if isfilelike(lpath):
outfile = lpath
else:
outfile = open(lpath, "wb") # noqa: ASYNC101, ASYNC230
outfile = open(lpath, "wb") # noqa: ASYNC230

try:
chunk = True
Expand Down Expand Up @@ -286,7 +286,7 @@ async def gen_chunks():
context = nullcontext(lpath)
use_seek = False # might not support seeking
else:
context = open(lpath, "rb") # noqa: ASYNC101, ASYNC230
context = open(lpath, "rb") # noqa: ASYNC230
use_seek = True

with context as f:
Expand Down Expand Up @@ -812,7 +812,7 @@ async def get_range(session, url, start, end, file=None, **kwargs):
async with r:
out = await r.read()
if file:
with open(file, "r+b") as f: # noqa: ASYNC101, ASYNC230
with open(file, "r+b") as f: # noqa: ASYNC230
f.seek(start)
f.write(out)
else:
Expand Down
4 changes: 2 additions & 2 deletions fsspec/implementations/memory.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from errno import ENOTEMPTY
from io import BytesIO
from pathlib import PurePath, PureWindowsPath
from typing import Any, ClassVar
from typing import Any, ClassVar, Sequence

from fsspec import AbstractFileSystem
from fsspec.implementations.local import LocalFileSystem
Expand All @@ -22,7 +22,7 @@ class MemoryFileSystem(AbstractFileSystem):
"""

store: ClassVar[dict[str, Any]] = {} # global, do not overwrite!
pseudo_dirs = [""] # global, do not overwrite!
pseudo_dirs: ClassVar[Sequence[str]] = [""] # global, do not overwrite!
protocol = "memory"
root_marker = "/"

Expand Down
2 changes: 1 addition & 1 deletion fsspec/implementations/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@


class MultiProtocolFileSystem(LocalFileSystem):
protocol = ["file", "other"]
protocol = ("file", "other")


FILESYSTEMS = {
Expand Down
4 changes: 2 additions & 2 deletions fsspec/implementations/tests/test_archive.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,14 +214,14 @@ class TestAnyArchive:
will adhere to the same specification.
"""

scenarios = [
scenarios = (
scenario_zip,
scenario_tar,
scenario_targz,
scenario_tarbz2,
scenario_tarxz,
scenario_libarchive,
]
)

def test_repr(self, scenario: ArchiveTestScenario):
with scenario.provider() as archive:
Expand Down
2 changes: 1 addition & 1 deletion fsspec/registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import types
import warnings

__all__ = ["registry", "get_filesystem_class", "default"]
__all__ = ["default", "get_filesystem_class", "registry"]

# internal, mutable
_registry: dict[str, type] = {}
Expand Down
5 changes: 3 additions & 2 deletions fsspec/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from collections import ChainMap
from http.server import BaseHTTPRequestHandler, HTTPServer
from types import SimpleNamespace
from typing import ClassVar

import pytest

Expand Down Expand Up @@ -45,7 +46,7 @@ def reset_files():


class HTTPTestHandler(BaseHTTPRequestHandler):
static_files = {
static_files: ClassVar[dict[str, bytes]] = {
"/index/realfile": data,
"/index/otherfile": data,
"/index": _make_index_listing,
Expand All @@ -55,7 +56,7 @@ class HTTPTestHandler(BaseHTTPRequestHandler):
"/simple/dir/": _make_listing("/simple/dir/file"),
"/simple/dir/file": data,
}
dynamic_files = {}
dynamic_files: ClassVar[dict[str, bytes]] = {}

files = ChainMap(dynamic_files, static_files)

Expand Down
2 changes: 1 addition & 1 deletion fsspec/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ def build_name_function(max_int: float) -> Callable[[int], str]:
# handle corner cases max_int is 0 or exact power of 10
max_int += 1e-8

pad_length = int(math.ceil(math.log10(max_int)))
pad_length = math.ceil(math.log10(max_int))

def name_function(i: int) -> str:
return str(i).zfill(pad_length)
Expand Down
6 changes: 3 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -177,9 +177,7 @@ select = [
"PIE810",
# "PT", enable in later PR
"PYI",
"RUF006",
"RUF015",
"RUF024",
"RUF",
"SIM",
"SLOT",
"SIM101",
Expand Down Expand Up @@ -213,6 +211,8 @@ ignore = [
"UP011",
"UP015",
"UP018",
"RUF001",
"RUF005",
"SIM102",
"SIM105",
"SIM108",
Expand Down
Loading