Skip to content
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
6 changes: 3 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ repos:
hooks:
- id: absolufy-imports
- repo: https://github.com/asottile/reorder-python-imports
rev: v3.16.0
rev: v3.17.0
hooks:
- id: reorder-python-imports
exclude: doc/
Expand Down Expand Up @@ -50,7 +50,7 @@ repos:
- id: detect-private-key
# code style
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.15.9
rev: v0.16.1
hooks:
- id: ruff-check
- id: ruff-format
Expand All @@ -70,6 +70,6 @@ repos:
- id: rst-inline-touching-normal
- id: text-unicode-replacement-char
- repo: https://github.com/codespell-project/codespell
rev: v2.4.2
rev: v2.4.3
hooks:
- id: codespell
5 changes: 2 additions & 3 deletions doc/source/guide/tips_about_accessor.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import pandas as pd\n",
"\n",
"\n",
"@pd.api.extensions.register_dataframe_accessor(\"geo\")\n",
Expand Down Expand Up @@ -228,8 +228,7 @@
"metadata": {},
"outputs": [],
"source": [
"from dtoolkit.accessor import register_dataframe_method\n",
"from dtoolkit.accessor import register_series_method\n",
"from dtoolkit.accessor import register_dataframe_method, register_series_method\n",
"\n",
"\n",
"@register_dataframe_method(\"col\")\n",
Expand Down
1 change: 0 additions & 1 deletion dtoolkit/_typing.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import numpy as np
import pandas as pd


SeriesOrFrame = pd.Series | pd.DataFrame

TwoDimArray = np.ndarray | pd.DataFrame
Expand Down
14 changes: 8 additions & 6 deletions dtoolkit/accessor/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import dtoolkit.accessor.dataframe # noqa: F401
import dtoolkit.accessor.index # noqa: F401
import dtoolkit.accessor.dataframe
import dtoolkit.accessor.index
import dtoolkit.accessor.series # noqa: F401
from dtoolkit.accessor.register import register_dataframe_method # noqa: F401
from dtoolkit.accessor.register import register_index_method # noqa: F401
from dtoolkit.accessor.register import register_method_factory # noqa: F401
from dtoolkit.accessor.register import register_series_method # noqa: F401
from dtoolkit.accessor.register import (
register_dataframe_method, # noqa: F401
register_index_method, # noqa: F401
register_method_factory, # noqa: F401
register_series_method, # noqa: F401
)
3 changes: 1 addition & 2 deletions dtoolkit/accessor/dataframe/drop_not_duplicates.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from collections.abc import Hashable
from collections.abc import Hashable, Sequence
from typing import Literal
from typing import Sequence

import pandas as pd

Expand Down
3 changes: 1 addition & 2 deletions dtoolkit/accessor/dataframe/fillna_regression.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
from __future__ import annotations

from collections.abc import Hashable
from typing import Literal
from typing import TYPE_CHECKING
from typing import TYPE_CHECKING, Literal

import pandas as pd

Expand Down
3 changes: 1 addition & 2 deletions dtoolkit/accessor/dataframe/filter_in.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from collections.abc import Hashable
from typing import Iterable
from collections.abc import Hashable, Iterable
from typing import Literal

import pandas as pd
Expand Down
6 changes: 2 additions & 4 deletions dtoolkit/accessor/dataframe/weighted_mean.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
from collections.abc import Hashable

import pandas as pd
from pandas.api.types import is_dict_like
from pandas.api.types import is_number
from pandas.api.types import is_dict_like, is_number

from dtoolkit._typing import Number
from dtoolkit._typing import SeriesOrFrame
from dtoolkit._typing import Number, SeriesOrFrame
from dtoolkit.accessor.register import register_dataframe_method


Expand Down
10 changes: 6 additions & 4 deletions dtoolkit/accessor/register.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
from collections.abc import Callable
from functools import wraps
from typing import Callable

from pandas.api.extensions import register_dataframe_accessor
from pandas.api.extensions import register_index_accessor
from pandas.api.extensions import register_series_accessor
from pandas.api.extensions import (
register_dataframe_accessor,
register_index_accessor,
register_series_accessor,
)
from pandas.util._decorators import doc

from dtoolkit._typing import SeriesOrFrame
Expand Down
3 changes: 1 addition & 2 deletions dtoolkit/accessor/series/error_report.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import pandas as pd

from dtoolkit._typing import Number
from dtoolkit._typing import OneDimArray
from dtoolkit._typing import Number, OneDimArray
from dtoolkit.accessor.register import register_series_method


Expand Down
3 changes: 1 addition & 2 deletions dtoolkit/accessor/series/expand.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from collections.abc import Hashable
from collections.abc import Hashable, Iterable
from textwrap import dedent
from typing import Iterable

import pandas as pd
from pandas.api.types import is_list_like
Expand Down
2 changes: 1 addition & 1 deletion dtoolkit/accessor/series/filter_in.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import Iterable
from collections.abc import Iterable

import pandas as pd

Expand Down
1 change: 0 additions & 1 deletion dtoolkit/accessor/series/getattr.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

from dtoolkit.accessor.register import register_series_method


get_attr = getattr


Expand Down
2 changes: 1 addition & 1 deletion dtoolkit/accessor/series/textdistance.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from collections.abc import Callable
from functools import lru_cache
from typing import Callable
from warnings import warn

import pandas as pd
Expand Down
2 changes: 1 addition & 1 deletion dtoolkit/accessor/series/textdistance_matrix.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import Callable
from collections.abc import Callable

import pandas as pd

Expand Down
1 change: 0 additions & 1 deletion dtoolkit/accessor/series/to_zh.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

from dtoolkit.accessor.register import register_series_method


LOCALIZATION = Literal[
"zh-hans",
"zh-hant",
Expand Down
22 changes: 14 additions & 8 deletions dtoolkit/geoaccessor/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
from dtoolkit.geoaccessor import dataframe # noqa: F401
from dtoolkit.geoaccessor import geodataframe # noqa: F401
from dtoolkit.geoaccessor import geoseries # noqa: F401
from dtoolkit.geoaccessor import series # noqa: F401
from dtoolkit.geoaccessor.accessor import register_geodataframe_accessor # noqa: F401
from dtoolkit.geoaccessor.accessor import register_geoseries_accessor # noqa: F401
from dtoolkit.geoaccessor.register import register_geodataframe_method # noqa: F401
from dtoolkit.geoaccessor.register import register_geoseries_method # noqa: F401
from dtoolkit.geoaccessor import (
dataframe, # noqa: F401
geodataframe, # noqa: F401
geoseries, # noqa: F401
series, # noqa: F401
)
from dtoolkit.geoaccessor.accessor import (
register_geodataframe_accessor, # noqa: F401
register_geoseries_accessor, # noqa: F401
)
from dtoolkit.geoaccessor.register import (
register_geodataframe_method, # noqa: F401
register_geoseries_method, # noqa: F401
)
1 change: 0 additions & 1 deletion dtoolkit/geoaccessor/dataframe/from_wkb.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
from dtoolkit.accessor.register import register_dataframe_method
from dtoolkit.geoaccessor.dataframe.to_geoframe import to_geoframe


if TYPE_CHECKING:
from pyproj import CRS

Expand Down
1 change: 0 additions & 1 deletion dtoolkit/geoaccessor/dataframe/from_wkt.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
from dtoolkit.accessor.register import register_dataframe_method
from dtoolkit.geoaccessor.dataframe.to_geoframe import to_geoframe


if TYPE_CHECKING:
from pyproj import CRS

Expand Down
1 change: 0 additions & 1 deletion dtoolkit/geoaccessor/dataframe/from_xy.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
from dtoolkit.accessor.register import register_dataframe_method
from dtoolkit.geoaccessor.dataframe.to_geoframe import to_geoframe


if TYPE_CHECKING:
from pyproj import CRS

Expand Down
1 change: 0 additions & 1 deletion dtoolkit/geoaccessor/dataframe/geocode.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
from dtoolkit.accessor.register import register_dataframe_method
from dtoolkit.geoaccessor.series import geocode as s_geocode


if TYPE_CHECKING:
import geopy.geocoders

Expand Down
7 changes: 4 additions & 3 deletions dtoolkit/geoaccessor/geodataframe/filter_geometry.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@
from pandas.util._decorators import doc

from dtoolkit.geoaccessor.geoseries import filter_geometry as s_filter_geometry
from dtoolkit.geoaccessor.geoseries.filter_geometry import _filter_geometry
from dtoolkit.geoaccessor.geoseries.filter_geometry import BINARY_PREDICATE
from dtoolkit.geoaccessor.geoseries.filter_geometry import (
BINARY_PREDICATE,
_filter_geometry,
)
from dtoolkit.geoaccessor.register import register_geodataframe_method


if TYPE_CHECKING:
from shapely.geometry.base import BaseGeometry

Expand Down
3 changes: 1 addition & 2 deletions dtoolkit/geoaccessor/geodataframe/geobuffer.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@
import geopandas as gpd
from pandas.util._decorators import doc

from dtoolkit._typing import Number
from dtoolkit._typing import OneDimArray
from dtoolkit._typing import Number, OneDimArray
from dtoolkit.geoaccessor.geoseries import geobuffer as s_geobuffer
from dtoolkit.geoaccessor.register import register_geodataframe_method

Expand Down
3 changes: 1 addition & 2 deletions dtoolkit/geoaccessor/geodataframe/voronoi.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@
from dtoolkit.geoaccessor.register import register_geodataframe_method

if TYPE_CHECKING:
from shapely import MultiPolygon
from shapely import Polygon
from shapely import MultiPolygon, Polygon


@register_geodataframe_method
Expand Down
3 changes: 1 addition & 2 deletions dtoolkit/geoaccessor/geoseries/cncrs_offset.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from typing import get_args
from typing import Literal
from typing import Literal, get_args

import geopandas as gpd
import numpy as np
Expand Down
2 changes: 1 addition & 1 deletion dtoolkit/geoaccessor/geoseries/duplicated_geometry.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import geopandas as gpd
import pandas as pd

from dtoolkit.geoaccessor.geoseries.duplicated_geometry_groups import BINARY_PREDICATE
from dtoolkit.geoaccessor.geoseries.duplicated_geometry_groups import (
BINARY_PREDICATE,
duplicated_geometry_groups,
)
from dtoolkit.geoaccessor.register import register_geoseries_method
Expand Down
7 changes: 4 additions & 3 deletions dtoolkit/geoaccessor/geoseries/duplicated_geometry_groups.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@
import geopandas as gpd
import pandas as pd

from dtoolkit.accessor.series import set_unique_index # noqa: F401
from dtoolkit.accessor.series import swap_index_values # noqa: F401
from dtoolkit.accessor.series import (
set_unique_index, # noqa: F401
swap_index_values, # noqa: F401
)
from dtoolkit.geoaccessor.register import register_geoseries_method


BINARY_PREDICATE = Literal[
"intersects",
"crosses",
Expand Down
5 changes: 1 addition & 4 deletions dtoolkit/geoaccessor/geoseries/filter_geometry.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
from __future__ import annotations

from typing import get_args
from typing import Literal
from typing import TYPE_CHECKING
from typing import TYPE_CHECKING, Literal, get_args

import geopandas as gpd
import pandas as pd
Expand All @@ -11,7 +9,6 @@
from dtoolkit.accessor.series import invert_or_not # noqa: F401
from dtoolkit.geoaccessor.register import register_geoseries_method


if TYPE_CHECKING:
from shapely.geometry.base import BaseGeometry

Expand Down
9 changes: 3 additions & 6 deletions dtoolkit/geoaccessor/geoseries/geobuffer.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
from warnings import catch_warnings
from warnings import simplefilter
from warnings import catch_warnings, simplefilter

import geopandas as gpd
import numpy as np
import pandas as pd
from pandas.api.types import is_list_like
from pandas.api.types import is_number
from pandas.api.types import is_list_like, is_number
from pandas.util._decorators import doc

from dtoolkit._typing import Number
from dtoolkit._typing import OneDimArray
from dtoolkit._typing import Number, OneDimArray
from dtoolkit.geoaccessor.register import register_geoseries_method


Expand Down
1 change: 0 additions & 1 deletion dtoolkit/geoaccessor/geoseries/select_geom_type.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
from dtoolkit.accessor.series import invert_or_not
from dtoolkit.geoaccessor.register import register_geoseries_method


GEOM_TYPE = Literal[
"Point",
"MultiPoint",
Expand Down
3 changes: 1 addition & 2 deletions dtoolkit/geoaccessor/index/h3.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
from pandas.core.base import NoNewAttributesMixin
from pandas.util._decorators import doc

from dtoolkit.geoaccessor.index.is_h3 import apply_h3
from dtoolkit.geoaccessor.index.is_h3 import is_h3
from dtoolkit.geoaccessor.index.is_h3 import apply_h3, is_h3


def available_if(func):
Expand Down
3 changes: 1 addition & 2 deletions dtoolkit/geoaccessor/index/is_h3.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
from functools import partial

import pandas as pd
from pandas.api.types import is_integer_dtype
from pandas.api.types import is_string_dtype
from pandas.api.types import is_integer_dtype, is_string_dtype
from pandas.util._decorators import doc

from dtoolkit.accessor.register import register_index_method
Expand Down
6 changes: 4 additions & 2 deletions dtoolkit/geoaccessor/register.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
from pandas.util._decorators import doc

from dtoolkit.accessor.register import register_method_factory
from dtoolkit.geoaccessor.accessor import register_geodataframe_accessor
from dtoolkit.geoaccessor.accessor import register_geoseries_accessor
from dtoolkit.geoaccessor.accessor import (
register_geodataframe_accessor,
register_geoseries_accessor,
)


@register_method_factory
Expand Down
1 change: 0 additions & 1 deletion dtoolkit/geoaccessor/series/from_wkb.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
from dtoolkit.accessor.register import register_series_method
from dtoolkit.geoaccessor.series.to_geoframe import to_geoframe


if TYPE_CHECKING:
from pyproj import CRS

Expand Down
1 change: 0 additions & 1 deletion dtoolkit/geoaccessor/series/from_wkt.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
from dtoolkit.accessor.register import register_series_method
from dtoolkit.geoaccessor.series.to_geoframe import to_geoframe


if TYPE_CHECKING:
from pyproj import CRS

Expand Down
Loading