Skip to content

Commit

Permalink
preliminary addressing to the comments
Browse files Browse the repository at this point in the history
  • Loading branch information
Seher Karakuzu authored and Seher Karakuzu committed Apr 12, 2024
1 parent 7c43b05 commit e27221c
Show file tree
Hide file tree
Showing 16 changed files with 122 additions and 136 deletions.
24 changes: 9 additions & 15 deletions tiled/adapters/array.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
from types import EllipsisType
from typing import Any, List, Optional, Tuple, Union
from typing import Any, List, Optional, Tuple

import dask.array
from numpy.typing import NDArray

from ..access_policies import DummyAccessPolicy, SimpleAccessPolicy
from ..structures.array import ArrayStructure
from ..structures.core import Spec, StructureFamily
from .type_alliases import JSON
from .protocols import AccessPolicy
from .type_alliases import JSON, NDSlice


class ArrayAdapter:
Expand All @@ -34,7 +33,7 @@ def __init__(
*,
metadata: Optional[JSON] = None,
specs: Optional[List[Spec]] = None,
access_policy: Optional[Union[SimpleAccessPolicy, DummyAccessPolicy]] = None,
access_policy: Optional[AccessPolicy] = None,
) -> None:
"""
Expand All @@ -61,7 +60,7 @@ def from_array(
dims: Optional[Tuple[str, ...]] = None,
metadata: Optional[JSON] = None,
specs: Optional[List[Spec]] = None,
access_policy: Optional[Union[SimpleAccessPolicy, DummyAccessPolicy]] = None,
access_policy: Optional[AccessPolicy] = None,
) -> "ArrayAdapter":
"""
Expand Down Expand Up @@ -129,9 +128,7 @@ def structure(self) -> ArrayStructure:

def read(
self,
slice: Union[
int, slice, Tuple[Union[int, slice, EllipsisType], ...], EllipsisType
] = ...,
slice: NDSlice = ...,
) -> NDArray[Any]:
"""
Expand All @@ -143,18 +140,15 @@ def read(
-------
"""
array = self._array
array = array[slice]
array = self._array[slice]
if isinstance(self._array, dask.array.Array):
return array.compute()
return array

def read_block(
self,
block: Tuple[int, ...],
slice: Union[
int, slice, Tuple[Union[int, slice, EllipsisType], ...], EllipsisType
] = ...,
slice: NDSlice = ...,
) -> NDArray[Any]:
"""
Expand All @@ -180,7 +174,7 @@ def read_block(

def slice_and_shape_from_block_and_chunks(
block: Tuple[int, ...], chunks: Tuple[Tuple[int, ...], ...]
) -> Tuple[Tuple[slice, ...], Tuple[int, ...]]:
) -> Tuple[NDSlice, Tuple[int, ...]]:
"""
Given dask-like chunks and block id, return slice and shape of the block.
Parameters
Expand Down
10 changes: 5 additions & 5 deletions tiled/adapters/awkward.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from typing import Any, Dict, List, Optional, Union
from typing import Any, Dict, List, Optional

import awkward
import awkward.forms
from numpy.typing import NDArray

from ..access_policies import DummyAccessPolicy, SimpleAccessPolicy
from ..structures.awkward import AwkwardStructure
from ..structures.core import Spec, StructureFamily
from .awkward_directory_container import DirectoryContainer
from .protocols import AccessPolicy
from .type_alliases import JSON


Expand All @@ -20,7 +20,7 @@ def __init__(
structure: AwkwardStructure,
metadata: Optional[JSON] = None,
specs: Optional[List[Spec]] = None,
access_policy: Optional[Union[DummyAccessPolicy, SimpleAccessPolicy]] = None,
access_policy: Optional[AccessPolicy] = None,
) -> None:
"""
Expand All @@ -44,7 +44,7 @@ def from_array(
array: NDArray[Any],
metadata: Optional[JSON] = None,
specs: Optional[List[Spec]] = None,
access_policy: Optional[Union[DummyAccessPolicy, SimpleAccessPolicy]] = None,
access_policy: Optional[AccessPolicy] = None,
) -> "AwkwardAdapter":
"""
Expand Down Expand Up @@ -78,7 +78,7 @@ def metadata(self) -> JSON:
"""
return self._metadata

def read_buffers(self, form_keys: Optional[List[str]] = None) -> Dict[str, Any]:
def read_buffers(self, form_keys: Optional[List[str]] = None) -> Dict[str, bytes]:
"""
Parameters
Expand Down
11 changes: 5 additions & 6 deletions tiled/adapters/awkward_buffers.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,17 @@
A directory containing awkward buffers, one file per form key.
"""
from pathlib import Path
from typing import Any, List, Optional, Union
from typing import List, Optional

import awkward.forms

from ..access_policies import DummyAccessPolicy, SimpleAccessPolicy
from ..server.schemas import Asset
from ..structures.awkward import AwkwardStructure
from ..structures.core import Spec, StructureFamily
from ..utils import path_from_uri
from .awkward import AwkwardAdapter
from .awkward_directory_container import DirectoryContainer
from .protocols import AccessPolicy
from .type_alliases import JSON


Expand All @@ -21,7 +22,7 @@ class AwkwardBuffersAdapter(AwkwardAdapter):
structure_family = StructureFamily.awkward

@classmethod
def init_storage(cls, data_uri: str, structure: AwkwardStructure) -> List[Any]:
def init_storage(cls, data_uri: str, structure: AwkwardStructure) -> List[Asset]:
"""
Parameters
Expand All @@ -33,8 +34,6 @@ def init_storage(cls, data_uri: str, structure: AwkwardStructure) -> List[Any]:
-------
"""
from ..server.schemas import Asset

directory: Path = path_from_uri(data_uri)
directory.mkdir(parents=True, exist_ok=True)
return [Asset(data_uri=data_uri, is_directory=True, parameter="data_uri")]
Expand All @@ -46,7 +45,7 @@ def from_directory(
structure: AwkwardStructure,
metadata: Optional[JSON] = None,
specs: Optional[List[Spec]] = None,
access_policy: Optional[Union[DummyAccessPolicy, SimpleAccessPolicy]] = None,
access_policy: Optional[AccessPolicy] = None,
) -> "AwkwardBuffersAdapter":
"""
Expand Down
5 changes: 1 addition & 4 deletions tiled/adapters/awkward_directory_container.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
"""
A directory containing awkward buffers, one file per form key.
"""
import collections.abc
import collections
from pathlib import Path
from typing import Any, Iterator

Expand Down
14 changes: 6 additions & 8 deletions tiled/adapters/csv.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
import dask.dataframe
import pandas

from ..access_policies import DummyAccessPolicy, SimpleAccessPolicy
from ..structures.core import Spec, StructureFamily
from ..structures.data_source import Asset, DataSource, Management
from ..structures.table import TableStructure
from ..utils import ensure_uri, path_from_uri
from .array import ArrayAdapter
from .dataframe import DataFrameAdapter
from .protocols import AccessPolicy
from .table import TableAdapter
from .type_alliases import JSON

Expand All @@ -29,7 +29,7 @@ def read_csv(
structure: Optional[TableStructure] = None,
metadata: Optional[JSON] = None,
specs: Optional[List[Spec]] = None,
access_policy: Optional[Union[DummyAccessPolicy, SimpleAccessPolicy]] = None,
access_policy: Optional[AccessPolicy] = None,
**kwargs: Any,
) -> TableAdapter:
"""
Expand Down Expand Up @@ -85,7 +85,7 @@ def __init__(
structure: Optional[TableStructure] = None,
metadata: Optional[JSON] = None,
specs: Optional[List[Spec]] = None,
access_policy: Optional[Union[DummyAccessPolicy, SimpleAccessPolicy]] = None,
access_policy: Optional[AccessPolicy] = None,
) -> None:
"""
Expand Down Expand Up @@ -134,7 +134,7 @@ def dataframe_adapter(self) -> TableAdapter:
return DataFrameAdapter(partitions, self._structure)

@classmethod
def init_storage(cls, data_uri: str, structure: TableStructure) -> Any:
def init_storage(cls, data_uri: str, structure: TableStructure) -> List[Asset]:
"""
Parameters
Expand All @@ -146,8 +146,6 @@ def init_storage(cls, data_uri: str, structure: TableStructure) -> Any:
-------
"""
from ..server.schemas import Asset

directory = path_from_uri(data_uri)
directory.mkdir(parents=True, exist_ok=True)
assets = [
Expand Down Expand Up @@ -267,7 +265,7 @@ def get(self, key: str) -> Union[ArrayAdapter, None]:

def generate_data_sources(
self,
mimetype: Any,
mimetype: str,
dict_or_none: Callable[[TableStructure], Dict[str, str]],
item: Union[str, Path],
is_directory: bool,
Expand Down Expand Up @@ -310,7 +308,7 @@ def from_single_file(
structure: Optional[TableStructure] = None,
metadata: Optional[JSON] = None,
specs: Optional[List[Spec]] = None,
access_policy: Optional[Union[DummyAccessPolicy, SimpleAccessPolicy]] = None,
access_policy: Optional[AccessPolicy] = None,
) -> "CSVAdapter":
"""
Expand Down
16 changes: 8 additions & 8 deletions tiled/adapters/hdf5.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@
import numpy
from numpy._typing import NDArray

from ..access_policies import DummyAccessPolicy, SimpleAccessPolicy
from ..adapters.utils import IndexersMixin
from ..iterviews import ItemsView, KeysView, ValuesView
from ..structures.array import ArrayStructure
from ..structures.core import Spec, StructureFamily
from ..structures.table import TableStructure
from ..utils import node_repr, path_from_uri
from .array import ArrayAdapter
from .protocols import AccessPolicy
from .resource_cache import with_resource_cache
from .type_alliases import JSON

Expand Down Expand Up @@ -76,7 +76,7 @@ def __init__(
structure: Optional[ArrayStructure] = None,
metadata: Optional[JSON] = None,
specs: Optional[List[Spec]] = None,
access_policy: Optional[Union[SimpleAccessPolicy, DummyAccessPolicy]] = None,
access_policy: Optional[AccessPolicy] = None,
) -> None:
"""
Expand Down Expand Up @@ -104,7 +104,7 @@ def from_file(
swmr: bool = SWMR_DEFAULT,
libver: str = "latest",
specs: Optional[List[Spec]] = None,
access_policy: Optional[Union[SimpleAccessPolicy, DummyAccessPolicy]] = None,
access_policy: Optional[AccessPolicy] = None,
) -> "HDF5Adapter":
"""
Expand All @@ -127,14 +127,14 @@ def from_file(
@classmethod
def from_uri(
cls,
data_uri: Union[str, List[str]],
data_uri: str,
*,
structure: Optional[ArrayStructure] = None,
metadata: Optional[JSON] = None,
swmr: bool = SWMR_DEFAULT,
libver: str = "latest",
specs: Optional[list[Spec]] = None,
access_policy: Optional[Union[SimpleAccessPolicy, DummyAccessPolicy]] = None,
access_policy: Optional[AccessPolicy] = None,
) -> "HDF5Adapter":
"""
Expand Down Expand Up @@ -169,7 +169,7 @@ def __repr__(self) -> str:
return node_repr(self, list(self))

@property
def access_policy(self) -> Optional[Union[SimpleAccessPolicy, DummyAccessPolicy]]:
def access_policy(self) -> Optional[AccessPolicy]:
"""
Returns
Expand Down Expand Up @@ -367,14 +367,14 @@ def inlined_contents_enabled(self, depth: int) -> bool:


def hdf5_lookup(
data_uri: Union[str, List[str]],
data_uri: str,
*,
structure: Optional[ArrayStructure] = None,
metadata: Optional[JSON] = None,
swmr: bool = SWMR_DEFAULT,
libver: str = "latest",
specs: Optional[List[Spec]] = None,
access_policy: Optional[Union[SimpleAccessPolicy, DummyAccessPolicy]] = None,
access_policy: Optional[AccessPolicy] = None,
path: Optional[Union[List[Path], List[str]]] = None,
) -> Union[HDF5Adapter, ArrayAdapter]:
"""
Expand Down
17 changes: 7 additions & 10 deletions tiled/adapters/mapping.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@

from fastapi import APIRouter

from ..access_policies import DummyAccessPolicy, SimpleAccessPolicy
from ..iterviews import ItemsView, KeysView, ValuesView
from ..queries import (
Comparison,
Expand All @@ -28,12 +27,12 @@
from ..structures.core import Spec, StructureFamily
from ..structures.table import TableStructure
from ..utils import UNCHANGED, Sentinel
from .table import TableAdapter
from .protocols import AccessPolicy, AnyAdapter
from .type_alliases import JSON
from .utils import IndexersMixin


class MapAdapter(collections.abc.Mapping[str, TableAdapter], IndexersMixin):
class MapAdapter(collections.abc.Mapping[str, AnyAdapter], IndexersMixin):
"""
Adapt any mapping (dictionary-like object) to Tiled.
"""
Expand All @@ -60,13 +59,13 @@ class MapAdapter(collections.abc.Mapping[str, TableAdapter], IndexersMixin):

def __init__(
self,
mapping: dict[str, TableAdapter],
mapping: dict[str, Any],
*,
structure: Optional[TableStructure] = None,
metadata: Optional[JSON] = None,
sorting: Optional[List[SortingItem]] = None,
specs: Optional[List[Spec]] = None,
access_policy: Optional[Union[SimpleAccessPolicy, DummyAccessPolicy]] = None,
access_policy: Optional[AccessPolicy] = None,
entries_stale_after: Optional[timedelta] = None,
metadata_stale_after: Optional[timedelta] = None,
must_revalidate: bool = True,
Expand Down Expand Up @@ -138,7 +137,7 @@ def must_revalidate(self, value: bool) -> None:
self._must_revalidate = value

@property
def access_policy(self) -> Optional[Union[SimpleAccessPolicy, DummyAccessPolicy]]:
def access_policy(self) -> Optional[AccessPolicy]:
"""
Returns
Expand All @@ -148,9 +147,7 @@ def access_policy(self) -> Optional[Union[SimpleAccessPolicy, DummyAccessPolicy]
return self._access_policy

@access_policy.setter
def access_policy(
self, value: Union[SimpleAccessPolicy, DummyAccessPolicy]
) -> None:
def access_policy(self, value: AccessPolicy) -> None:
"""
Parameters
Expand Down Expand Up @@ -468,7 +465,7 @@ def _keys_slice(

def _items_slice(
self, start: int, stop: int, direction: int
) -> Iterator[Tuple[str, TableAdapter]]:
) -> Iterator[Tuple[str, Any]]:
"""
Parameters
Expand Down
Loading

0 comments on commit e27221c

Please sign in to comment.