diff --git a/MANIFEST.in b/MANIFEST.in index 032b620f433..a119e7df1fd 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1 +1,2 @@ prune xarray/datatree_* +recursive-include xarray/datatree_/datatree *.py diff --git a/pyproject.toml b/pyproject.toml index 8cbd395b2a3..0fc26e5b82e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -88,7 +88,7 @@ exclude_lines = ["pragma: no cover", "if TYPE_CHECKING"] enable_error_code = "redundant-self" exclude = [ 'xarray/util/generate_.*\.py', - 'xarray/datatree_/.*\.py', + 'xarray/datatree_/doc/.*\.py', ] files = "xarray" show_error_codes = true @@ -97,11 +97,6 @@ warn_redundant_casts = true warn_unused_configs = true warn_unused_ignores = true -# Ignore mypy errors for modules imported from datatree_. -[[tool.mypy.overrides]] -ignore_errors = true -module = "xarray.datatree_.*" - # Much of the numerical computing stack doesn't have type annotations yet. [[tool.mypy.overrides]] ignore_missing_imports = true diff --git a/xarray/datatree_/datatree/io.py b/xarray/datatree_/datatree/io.py index 48335ddca70..6c8e9617da3 100644 --- a/xarray/datatree_/datatree/io.py +++ b/xarray/datatree_/datatree/io.py @@ -3,14 +3,14 @@ def _get_nc_dataset_class(engine): if engine == "netcdf4": - from netCDF4 import Dataset # type: ignore + from netCDF4 import Dataset elif engine == "h5netcdf": - from h5netcdf.legacyapi import Dataset # type: ignore + from h5netcdf.legacyapi import Dataset elif engine is None: try: from netCDF4 import Dataset except ImportError: - from h5netcdf.legacyapi import Dataset # type: ignore + from h5netcdf.legacyapi import Dataset else: raise ValueError(f"unsupported engine: {engine}") return Dataset @@ -78,7 +78,7 @@ def _datatree_to_netcdf( def _create_empty_zarr_group(store, group, mode): - import zarr # type: ignore + import zarr root = zarr.open_group(store, mode=mode) root.create_group(group, overwrite=True) @@ -92,7 +92,7 @@ def _datatree_to_zarr( consolidated: bool = True, **kwargs, ): - from zarr.convenience import consolidate_metadata # type: ignore + from zarr.convenience import consolidate_metadata if kwargs.get("group", None) is not None: raise NotImplementedError( diff --git a/xarray/datatree_/datatree/tests/test_extensions.py b/xarray/datatree_/datatree/tests/test_extensions.py index fb2e82453ec..329696c7a9d 100644 --- a/xarray/datatree_/datatree/tests/test_extensions.py +++ b/xarray/datatree_/datatree/tests/test_extensions.py @@ -18,16 +18,15 @@ def foo(self): return "bar" dt: DataTree = DataTree() - assert dt.demo.foo == "bar" # type: ignore + assert dt.demo.foo == "bar" # accessor is cached - assert dt.demo is dt.demo # type: ignore + assert dt.demo is dt.demo # check descriptor - assert dt.demo.__doc__ == "Demo accessor." # type: ignore - # TODO: typing doesn't seem to work with accessors - assert DataTree.demo.__doc__ == "Demo accessor." # type: ignore - assert isinstance(dt.demo, DemoAccessor) # type: ignore + assert dt.demo.__doc__ == "Demo accessor." + assert DataTree.demo.__doc__ == "Demo accessor." # type: ignore + assert isinstance(dt.demo, DemoAccessor) assert DataTree.demo is DemoAccessor # type: ignore with pytest.warns(Warning, match="overriding a preexisting attribute"): diff --git a/xarray/datatree_/docs/source/conf.py b/xarray/datatree_/docs/source/conf.py index 8a9224def5b..430dbb5bf6d 100644 --- a/xarray/datatree_/docs/source/conf.py +++ b/xarray/datatree_/docs/source/conf.py @@ -17,9 +17,9 @@ import os import sys -import sphinx_autosummary_accessors +import sphinx_autosummary_accessors # type: ignore -import datatree +import datatree # type: ignore # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the @@ -286,7 +286,7 @@ # -- Options for LaTeX output -------------------------------------------------- -latex_elements = { +latex_elements: dict = { # The paper size ('letterpaper' or 'a4paper'). # 'papersize': 'letterpaper', # The font size ('10pt', '11pt' or '12pt').