Skip to content
Merged
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
10 changes: 5 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]

steps:
- name: Checkout source
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Setup conda
uses: conda-incubator/setup-miniconda@v3
Expand Down Expand Up @@ -47,8 +47,8 @@ jobs:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
- uses: actions/checkout@v5
- uses: actions/setup-python@v6
with:
python-version: "3.11"
- uses: pre-commit/action@v3.0.0
- uses: pre-commit/action@v3.0.1
12 changes: 6 additions & 6 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,26 @@
exclude: versioneer.py
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
rev: v6.0.0
hooks:
- id: end-of-file-fixer
- id: requirements-txt-fixer
- id: trailing-whitespace
- repo: https://github.com/psf/black
rev: 22.10.0
- repo: https://github.com/psf/black-pre-commit-mirror
rev: 25.11.0
hooks:
- id: black
args:
- --target-version=py37
- --target-version=py310
- repo: https://github.com/pycqa/flake8
rev: 6.0.0
rev: 7.3.0
hooks:
- id: flake8
- repo: https://github.com/asottile/seed-isort-config
rev: v2.2.0
hooks:
- id: seed-isort-config
- repo: https://github.com/pre-commit/mirrors-isort
rev: v5.7.0
rev: v5.10.1
hooks:
- id: isort
2 changes: 1 addition & 1 deletion docs/environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: s3fs
channels:
- defaults
dependencies:
- python= 3.9
- python= 3.10
- docutils<0.17
- sphinx
- sphinx_rtd_theme
3 changes: 1 addition & 2 deletions gcsfs/checkers.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import base64
from base64 import b64encode
from hashlib import md5
from typing import Optional

from .retry import ChecksumError

Expand Down Expand Up @@ -104,7 +103,7 @@ def validate_http_response(self, r):
return self.validate_headers(r.headers)


def get_consistency_checker(consistency: Optional[str]) -> ConsistencyChecker:
def get_consistency_checker(consistency: str | None) -> ConsistencyChecker:
if consistency == "size":
return SizeChecker()
elif consistency == "md5":
Expand Down
2 changes: 1 addition & 1 deletion gcsfs/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ def _coalesce_generation(*args):
if len(generations) > 1:
raise ValueError(
"Cannot coalesce generations where more than one are defined,"
" {}".format(generations)
f" {generations}"
)
elif len(generations) == 0:
return None
Expand Down
2 changes: 1 addition & 1 deletion gcsfs/inventory_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -623,7 +623,7 @@ def _convert_str_to_datetime(str):
return datetime.fromisoformat(str.replace("Z", "+00:00"))


class InventoryReportConfig(object):
class InventoryReportConfig:
"""
Represents the configuration for fetching inventory reports.

Expand Down
5 changes: 1 addition & 4 deletions gcsfs/tests/test_fuse.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import logging
import os
import sys
import tempfile
import threading
import time
Expand All @@ -11,7 +10,6 @@
from gcsfs.tests.settings import TEST_BUCKET


@pytest.mark.timeout(180)
@pytest.fixture
def fsspec_fuse_run():
"""Fixture catches other errors on fuse import."""
Expand All @@ -26,7 +24,6 @@ def fsspec_fuse_run():
pytest.skip("Error importing fuse.")


@pytest.mark.skipif(sys.version_info < (3, 9), reason="Test fuse causes hang.")
@pytest.mark.xfail(reason="Failing test not previously tested.")
@pytest.mark.timeout(180)
def test_fuse(gcs, fsspec_fuse_run):
Expand All @@ -40,7 +37,7 @@ def test_fuse(gcs, fsspec_fuse_run):
timeout = 20
n = 40
for i in range(n):
logging.debug(f"Attempt # {i+1}/{n} to create lock file.")
logging.debug(f"Attempt # {i + 1}/{n} to create lock file.")
try:
open(os.path.join(mountpath, "lock"), "w").close()
os.remove(os.path.join(mountpath, "lock"))
Expand Down
2 changes: 1 addition & 1 deletion gcsfs/tests/test_inventory_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from gcsfs.inventory_report import InventoryReport, InventoryReportConfig


class TestInventoryReport(object):
class TestInventoryReport:
"""
Unit tests for the inventory report logic, see 'inventory_report.py'.

Expand Down
3 changes: 0 additions & 3 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@ versionfile_source = gcsfs/_version.py
versionfile_build = gcsfs/_version.py
tag_prefix =

[bdist_wheel]
universal=1

[flake8]
exclude = versioneer.py,docs/source/conf.py
ignore =
Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,17 @@
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
],
keywords=["google-cloud-storage", "gcloud", "file-system"],
packages=["gcsfs", "gcsfs.cli"],
install_requires=[open("requirements.txt").read().strip().split("\n")],
extras_require={"gcsfuse": ["fusepy"], "crc": ["crcmod"]},
python_requires=">=3.9",
python_requires=">=3.10",
long_description_content_type="text/markdown",
long_description=open("README.md").read(),
zip_safe=False,
Expand Down
Loading