atdata 0.3.0b1__py3-none-any.whl → 0.3.1b1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- atdata/__init__.py +9 -0
- atdata/_cid.py +0 -21
- atdata/_helpers.py +12 -0
- atdata/_hf_api.py +33 -1
- atdata/_protocols.py +64 -182
- atdata/_schema_codec.py +2 -2
- atdata/_stub_manager.py +5 -25
- atdata/atmosphere/__init__.py +12 -11
- atdata/atmosphere/_types.py +4 -4
- atdata/atmosphere/client.py +64 -12
- atdata/atmosphere/lens.py +11 -12
- atdata/atmosphere/records.py +9 -10
- atdata/atmosphere/schema.py +14 -16
- atdata/atmosphere/store.py +6 -7
- atdata/cli/__init__.py +16 -16
- atdata/cli/diagnose.py +2 -2
- atdata/cli/{local.py → infra.py} +10 -10
- atdata/dataset.py +155 -2
- atdata/index/__init__.py +54 -0
- atdata/{local → index}/_index.py +322 -64
- atdata/{local → index}/_schema.py +5 -5
- atdata/lexicons/__init__.py +121 -0
- atdata/lexicons/ac.foundation.dataset.arrayFormat.json +16 -0
- atdata/lexicons/ac.foundation.dataset.getLatestSchema.json +78 -0
- atdata/lexicons/ac.foundation.dataset.lens.json +99 -0
- atdata/lexicons/ac.foundation.dataset.record.json +96 -0
- atdata/lexicons/ac.foundation.dataset.schema.json +107 -0
- atdata/lexicons/ac.foundation.dataset.schemaType.json +16 -0
- atdata/lexicons/ac.foundation.dataset.storageBlobs.json +24 -0
- atdata/lexicons/ac.foundation.dataset.storageExternal.json +25 -0
- atdata/lexicons/ndarray_shim.json +16 -0
- atdata/local/__init__.py +12 -13
- atdata/local/_repo_legacy.py +3 -3
- atdata/promote.py +14 -10
- atdata/repository.py +7 -7
- atdata/stores/__init__.py +23 -0
- atdata/stores/_disk.py +123 -0
- atdata/testing.py +12 -8
- {atdata-0.3.0b1.dist-info → atdata-0.3.1b1.dist-info}/METADATA +2 -2
- atdata-0.3.1b1.dist-info/RECORD +67 -0
- atdata-0.3.0b1.dist-info/RECORD +0 -54
- /atdata/{local → index}/_entry.py +0 -0
- /atdata/{local → stores}/_s3.py +0 -0
- {atdata-0.3.0b1.dist-info → atdata-0.3.1b1.dist-info}/WHEEL +0 -0
- {atdata-0.3.0b1.dist-info → atdata-0.3.1b1.dist-info}/entry_points.txt +0 -0
- {atdata-0.3.0b1.dist-info → atdata-0.3.1b1.dist-info}/licenses/LICENSE +0 -0
atdata/promote.py
CHANGED
|
@@ -6,29 +6,28 @@ federation while maintaining schema consistency.
|
|
|
6
6
|
|
|
7
7
|
Examples:
|
|
8
8
|
>>> from atdata.local import Index, Repo
|
|
9
|
-
>>> from atdata.atmosphere import
|
|
9
|
+
>>> from atdata.atmosphere import Atmosphere
|
|
10
10
|
>>> from atdata.promote import promote_to_atmosphere
|
|
11
11
|
>>>
|
|
12
12
|
>>> # Setup
|
|
13
13
|
>>> local_index = Index()
|
|
14
|
-
>>>
|
|
15
|
-
>>> client.login("handle.bsky.social", "app-password")
|
|
14
|
+
>>> atmo = Atmosphere.login("handle.bsky.social", "app-password")
|
|
16
15
|
>>>
|
|
17
16
|
>>> # Promote a dataset
|
|
18
17
|
>>> entry = local_index.get_dataset("my-dataset")
|
|
19
|
-
>>> at_uri = promote_to_atmosphere(entry, local_index,
|
|
18
|
+
>>> at_uri = promote_to_atmosphere(entry, local_index, atmo)
|
|
20
19
|
"""
|
|
21
20
|
|
|
22
21
|
from typing import TYPE_CHECKING, Type
|
|
23
22
|
|
|
24
23
|
if TYPE_CHECKING:
|
|
25
24
|
from .local import LocalDatasetEntry, Index
|
|
26
|
-
from .atmosphere import
|
|
25
|
+
from .atmosphere import Atmosphere
|
|
27
26
|
from ._protocols import AbstractDataStore, Packable
|
|
28
27
|
|
|
29
28
|
|
|
30
29
|
def _find_existing_schema(
|
|
31
|
-
client: "
|
|
30
|
+
client: "Atmosphere",
|
|
32
31
|
name: str,
|
|
33
32
|
version: str,
|
|
34
33
|
) -> str | None:
|
|
@@ -55,7 +54,7 @@ def _find_existing_schema(
|
|
|
55
54
|
def _find_or_publish_schema(
|
|
56
55
|
sample_type: "Type[Packable]",
|
|
57
56
|
version: str,
|
|
58
|
-
client: "
|
|
57
|
+
client: "Atmosphere",
|
|
59
58
|
description: str | None = None,
|
|
60
59
|
) -> str:
|
|
61
60
|
"""Find existing schema or publish a new one.
|
|
@@ -95,7 +94,7 @@ def _find_or_publish_schema(
|
|
|
95
94
|
def promote_to_atmosphere(
|
|
96
95
|
local_entry: "LocalDatasetEntry",
|
|
97
96
|
local_index: "Index",
|
|
98
|
-
atmosphere_client: "
|
|
97
|
+
atmosphere_client: "Atmosphere",
|
|
99
98
|
*,
|
|
100
99
|
data_store: "AbstractDataStore | None" = None,
|
|
101
100
|
name: str | None = None,
|
|
@@ -108,10 +107,15 @@ def promote_to_atmosphere(
|
|
|
108
107
|
This function takes a locally-indexed dataset and publishes it to ATProto,
|
|
109
108
|
making it discoverable on the federated atmosphere network.
|
|
110
109
|
|
|
110
|
+
.. deprecated::
|
|
111
|
+
Prefer ``Index.promote_entry()`` or ``Index.promote_dataset()``
|
|
112
|
+
which provide the same functionality through the unified Index
|
|
113
|
+
interface without requiring separate client and index arguments.
|
|
114
|
+
|
|
111
115
|
Args:
|
|
112
116
|
local_entry: The LocalDatasetEntry to promote.
|
|
113
117
|
local_index: Local index containing the schema for this entry.
|
|
114
|
-
atmosphere_client: Authenticated
|
|
118
|
+
atmosphere_client: Authenticated Atmosphere.
|
|
115
119
|
data_store: Optional data store for copying data to new location.
|
|
116
120
|
If None, the existing data_urls are used as-is.
|
|
117
121
|
name: Override name for the atmosphere record. Defaults to local name.
|
|
@@ -128,7 +132,7 @@ def promote_to_atmosphere(
|
|
|
128
132
|
|
|
129
133
|
Examples:
|
|
130
134
|
>>> entry = local_index.get_dataset("mnist-train")
|
|
131
|
-
>>> uri = promote_to_atmosphere(entry, local_index,
|
|
135
|
+
>>> uri = promote_to_atmosphere(entry, local_index, atmo)
|
|
132
136
|
>>> print(uri)
|
|
133
137
|
at://did:plc:abc123/ac.foundation.dataset.datasetIndex/...
|
|
134
138
|
"""
|
atdata/repository.py
CHANGED
|
@@ -5,7 +5,7 @@ optional ``AbstractDataStore`` (shard storage), forming a named storage unit
|
|
|
5
5
|
that can be mounted into an ``Index``.
|
|
6
6
|
|
|
7
7
|
The ``_AtmosphereBackend`` is an internal adapter that wraps an
|
|
8
|
-
``
|
|
8
|
+
``Atmosphere`` to present the same operational surface as a repository,
|
|
9
9
|
but routes through the ATProto network instead of a local provider.
|
|
10
10
|
|
|
11
11
|
Examples:
|
|
@@ -105,7 +105,7 @@ def create_repository(
|
|
|
105
105
|
|
|
106
106
|
|
|
107
107
|
class _AtmosphereBackend:
|
|
108
|
-
"""Internal adapter wrapping
|
|
108
|
+
"""Internal adapter wrapping Atmosphere for Index routing.
|
|
109
109
|
|
|
110
110
|
This class extracts the operational logic from ``AtmosphereIndex`` into an
|
|
111
111
|
internal component that the unified ``Index`` uses for ATProto resolution.
|
|
@@ -117,15 +117,15 @@ class _AtmosphereBackend:
|
|
|
117
117
|
|
|
118
118
|
def __init__(
|
|
119
119
|
self,
|
|
120
|
-
client: Any, #
|
|
120
|
+
client: Any, # Atmosphere, typed as Any to avoid hard import
|
|
121
121
|
*,
|
|
122
122
|
data_store: Optional[AbstractDataStore] = None,
|
|
123
123
|
) -> None:
|
|
124
|
-
from .atmosphere.client import
|
|
124
|
+
from .atmosphere.client import Atmosphere
|
|
125
125
|
|
|
126
|
-
if not isinstance(client,
|
|
127
|
-
raise TypeError(f"Expected
|
|
128
|
-
self.client:
|
|
126
|
+
if not isinstance(client, Atmosphere):
|
|
127
|
+
raise TypeError(f"Expected Atmosphere, got {type(client).__name__}")
|
|
128
|
+
self.client: Atmosphere = client
|
|
129
129
|
self._data_store = data_store
|
|
130
130
|
self._schema_publisher: Any = None
|
|
131
131
|
self._schema_loader: Any = None
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"""Data stores for atdata datasets.
|
|
2
|
+
|
|
3
|
+
Key classes:
|
|
4
|
+
|
|
5
|
+
- ``LocalDiskStore``: Local filesystem data store.
|
|
6
|
+
- ``S3DataStore``: S3-compatible object storage.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from atdata.stores._disk import LocalDiskStore
|
|
10
|
+
from atdata.stores._s3 import (
|
|
11
|
+
S3DataStore,
|
|
12
|
+
_s3_env,
|
|
13
|
+
_s3_from_credentials,
|
|
14
|
+
_create_s3_write_callbacks,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
__all__ = [
|
|
18
|
+
"LocalDiskStore",
|
|
19
|
+
"S3DataStore",
|
|
20
|
+
"_s3_env",
|
|
21
|
+
"_s3_from_credentials",
|
|
22
|
+
"_create_s3_write_callbacks",
|
|
23
|
+
]
|
atdata/stores/_disk.py
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"""Local filesystem data store for WebDataset shards.
|
|
2
|
+
|
|
3
|
+
Writes and reads WebDataset tar archives on the local filesystem,
|
|
4
|
+
implementing the ``AbstractDataStore`` protocol.
|
|
5
|
+
|
|
6
|
+
Examples:
|
|
7
|
+
>>> store = LocalDiskStore(root="~/.atdata/data")
|
|
8
|
+
>>> urls = store.write_shards(dataset, prefix="mnist/v1")
|
|
9
|
+
>>> print(urls[0])
|
|
10
|
+
/home/user/.atdata/data/mnist/v1/data--a1b2c3--000000.tar
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from __future__ import annotations
|
|
14
|
+
|
|
15
|
+
from pathlib import Path
|
|
16
|
+
from typing import TYPE_CHECKING, Any
|
|
17
|
+
from uuid import uuid4
|
|
18
|
+
|
|
19
|
+
import webdataset as wds
|
|
20
|
+
|
|
21
|
+
if TYPE_CHECKING:
|
|
22
|
+
from atdata.dataset import Dataset
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class LocalDiskStore:
|
|
26
|
+
"""Local filesystem data store.
|
|
27
|
+
|
|
28
|
+
Writes WebDataset shards to a directory on disk. Implements the
|
|
29
|
+
``AbstractDataStore`` protocol for use with ``Index``.
|
|
30
|
+
|
|
31
|
+
Args:
|
|
32
|
+
root: Root directory for shard storage. Defaults to
|
|
33
|
+
``~/.atdata/data/``. Created automatically if it does
|
|
34
|
+
not exist.
|
|
35
|
+
|
|
36
|
+
Examples:
|
|
37
|
+
>>> store = LocalDiskStore()
|
|
38
|
+
>>> urls = store.write_shards(dataset, prefix="my-dataset")
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
def __init__(self, root: str | Path | None = None) -> None:
|
|
42
|
+
if root is None:
|
|
43
|
+
root = Path.home() / ".atdata" / "data"
|
|
44
|
+
self._root = Path(root).expanduser().resolve()
|
|
45
|
+
self._root.mkdir(parents=True, exist_ok=True)
|
|
46
|
+
|
|
47
|
+
@property
|
|
48
|
+
def root(self) -> Path:
|
|
49
|
+
"""Root directory for shard storage."""
|
|
50
|
+
return self._root
|
|
51
|
+
|
|
52
|
+
def write_shards(
|
|
53
|
+
self,
|
|
54
|
+
ds: "Dataset",
|
|
55
|
+
*,
|
|
56
|
+
prefix: str,
|
|
57
|
+
**kwargs: Any,
|
|
58
|
+
) -> list[str]:
|
|
59
|
+
"""Write dataset shards to the local filesystem.
|
|
60
|
+
|
|
61
|
+
Args:
|
|
62
|
+
ds: The Dataset to write.
|
|
63
|
+
prefix: Path prefix within root (e.g., ``'datasets/mnist/v1'``).
|
|
64
|
+
**kwargs: Additional args passed to ``wds.writer.ShardWriter``
|
|
65
|
+
(e.g., ``maxcount``, ``maxsize``).
|
|
66
|
+
|
|
67
|
+
Returns:
|
|
68
|
+
List of absolute file paths for the written shards.
|
|
69
|
+
|
|
70
|
+
Raises:
|
|
71
|
+
RuntimeError: If no shards were written.
|
|
72
|
+
"""
|
|
73
|
+
shard_dir = self._root / prefix
|
|
74
|
+
shard_dir.mkdir(parents=True, exist_ok=True)
|
|
75
|
+
|
|
76
|
+
new_uuid = str(uuid4())[:8]
|
|
77
|
+
shard_pattern = str(shard_dir / f"data--{new_uuid}--%06d.tar")
|
|
78
|
+
|
|
79
|
+
written_shards: list[str] = []
|
|
80
|
+
|
|
81
|
+
def _track_shard(path: str) -> None:
|
|
82
|
+
written_shards.append(str(Path(path).resolve()))
|
|
83
|
+
|
|
84
|
+
# Filter out kwargs that are specific to other stores (e.g. S3)
|
|
85
|
+
# and not understood by wds.writer.ShardWriter / TarWriter.
|
|
86
|
+
writer_kwargs = {k: v for k, v in kwargs.items() if k not in ("cache_local",)}
|
|
87
|
+
|
|
88
|
+
with wds.writer.ShardWriter(
|
|
89
|
+
shard_pattern,
|
|
90
|
+
post=_track_shard,
|
|
91
|
+
**writer_kwargs,
|
|
92
|
+
) as sink:
|
|
93
|
+
for sample in ds.ordered(batch_size=None):
|
|
94
|
+
sink.write(sample.as_wds)
|
|
95
|
+
|
|
96
|
+
if not written_shards:
|
|
97
|
+
raise RuntimeError(
|
|
98
|
+
f"No shards written for prefix {prefix!r} in {self._root}"
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
return written_shards
|
|
102
|
+
|
|
103
|
+
def read_url(self, url: str) -> str:
|
|
104
|
+
"""Resolve a storage URL for reading.
|
|
105
|
+
|
|
106
|
+
Local filesystem paths are returned as-is since WebDataset
|
|
107
|
+
can read them directly.
|
|
108
|
+
|
|
109
|
+
Args:
|
|
110
|
+
url: Absolute file path to a shard.
|
|
111
|
+
|
|
112
|
+
Returns:
|
|
113
|
+
The same path, unchanged.
|
|
114
|
+
"""
|
|
115
|
+
return url
|
|
116
|
+
|
|
117
|
+
def supports_streaming(self) -> bool:
|
|
118
|
+
"""Whether this store supports streaming reads.
|
|
119
|
+
|
|
120
|
+
Returns:
|
|
121
|
+
``True`` — local filesystem supports streaming.
|
|
122
|
+
"""
|
|
123
|
+
return True
|
atdata/testing.py
CHANGED
|
@@ -14,7 +14,7 @@ Usage::
|
|
|
14
14
|
samples = at_test.make_samples(MyType, n=100)
|
|
15
15
|
|
|
16
16
|
# Use mock atmosphere client
|
|
17
|
-
client = at_test.
|
|
17
|
+
client = at_test.MockAtmosphere()
|
|
18
18
|
|
|
19
19
|
# Use in-memory index (SQLite backed, temporary)
|
|
20
20
|
index = at_test.mock_index(tmp_path)
|
|
@@ -40,7 +40,7 @@ import webdataset as wds
|
|
|
40
40
|
|
|
41
41
|
import atdata
|
|
42
42
|
from atdata import Dataset, PackableSample
|
|
43
|
-
from atdata.
|
|
43
|
+
from atdata.index._index import Index
|
|
44
44
|
from atdata.providers._sqlite import SqliteProvider
|
|
45
45
|
|
|
46
46
|
ST = TypeVar("ST")
|
|
@@ -51,14 +51,14 @@ ST = TypeVar("ST")
|
|
|
51
51
|
# ---------------------------------------------------------------------------
|
|
52
52
|
|
|
53
53
|
|
|
54
|
-
class
|
|
55
|
-
"""In-memory mock of ``
|
|
54
|
+
class MockAtmosphere:
|
|
55
|
+
"""In-memory mock of ``Atmosphere`` for testing.
|
|
56
56
|
|
|
57
57
|
Simulates login, schema publishing, dataset publishing, and record
|
|
58
58
|
retrieval without requiring a live ATProto PDS.
|
|
59
59
|
|
|
60
60
|
Examples:
|
|
61
|
-
>>> client =
|
|
61
|
+
>>> client = MockAtmosphere()
|
|
62
62
|
>>> client.login("alice.test", "password")
|
|
63
63
|
>>> client.did
|
|
64
64
|
'did:plc:mock000000000000'
|
|
@@ -294,8 +294,8 @@ try:
|
|
|
294
294
|
|
|
295
295
|
@pytest.fixture
|
|
296
296
|
def mock_atmosphere():
|
|
297
|
-
"""Provide a fresh ``
|
|
298
|
-
client =
|
|
297
|
+
"""Provide a fresh ``MockAtmosphere`` for each test."""
|
|
298
|
+
client = MockAtmosphere()
|
|
299
299
|
client.login("test.mock.social", "test-password")
|
|
300
300
|
yield client
|
|
301
301
|
client.reset()
|
|
@@ -329,8 +329,12 @@ except ImportError:
|
|
|
329
329
|
# Public API
|
|
330
330
|
# ---------------------------------------------------------------------------
|
|
331
331
|
|
|
332
|
+
# Deprecated alias for backward compatibility
|
|
333
|
+
MockAtmosphereClient = MockAtmosphere
|
|
334
|
+
|
|
332
335
|
__all__ = [
|
|
333
|
-
"
|
|
336
|
+
"MockAtmosphere",
|
|
337
|
+
"MockAtmosphereClient", # deprecated alias
|
|
334
338
|
"make_dataset",
|
|
335
339
|
"make_samples",
|
|
336
340
|
"mock_index",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: atdata
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.1b1
|
|
4
4
|
Summary: A loose federation of distributed, typed datasets
|
|
5
5
|
Author-email: Maxine Levesque <hello@maxine.science>, "Maxine @ Forecast Bio" <maxine@forecast.bio>
|
|
6
6
|
License-File: LICENSE
|
|
@@ -30,7 +30,7 @@ Description-Content-Type: text/markdown
|
|
|
30
30
|
|
|
31
31
|
# atdata
|
|
32
32
|
|
|
33
|
-
[](https://codecov.io/gh/forecast-bio/atdata)
|
|
34
34
|
|
|
35
35
|
A loose federation of distributed, typed datasets built on WebDataset.
|
|
36
36
|
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
atdata/.gitignore,sha256=ROcLwaiURIGOAYGFpakac_WEeKS4hH4HxJuscfDGo2s,10
|
|
2
|
+
atdata/__init__.py,sha256=4Md8CpLcwSlmQtogXnXl5khztgOIK_0AOkIp6CyrzgM,3392
|
|
3
|
+
atdata/_cid.py,sha256=9EMJw_kcNchVF6bg5Pkl6ud99Xdm_fAEAxsgf1aV8A8,3500
|
|
4
|
+
atdata/_exceptions.py,sha256=a2IzmTJqLyIgQ0RkW3KhaaaSDdQJGLoXzuHfEX0DfB4,5390
|
|
5
|
+
atdata/_helpers.py,sha256=SBGrHBDPyg2ZALhVA9xLAWGERj9G7tySBx4Sn5fLvc0,2749
|
|
6
|
+
atdata/_hf_api.py,sha256=yN8CvB6V64H3LMGbANGTMCToURsV3Th6pyhG9vMp79Y,25522
|
|
7
|
+
atdata/_logging.py,sha256=Wj9MTe9xCP_awiQYfa7219Fb443Rkwu_jIqM-m2u2GA,2225
|
|
8
|
+
atdata/_protocols.py,sha256=xjqsxPG6KLoq6kqZaoGbUEWXiK-gMqHjCoK_9ad8j2Q,9412
|
|
9
|
+
atdata/_schema_codec.py,sha256=uje12k38EoHlkJsdtvZO14KpaAc1kzsd32QBCEOnBWE,14383
|
|
10
|
+
atdata/_sources.py,sha256=A7HMkS_dqN5Sx7rG1nZsO1Laxozt3C65_P2Hiv41VXk,16624
|
|
11
|
+
atdata/_stub_manager.py,sha256=ciA46WKqczE1cBYE4CJZeE37vhlgShl_VpejAmAZFEQ,18195
|
|
12
|
+
atdata/_type_utils.py,sha256=mhD0ywXgIEpVaAWpGVKGneUOh0cmI96zKz6g2O1bdg0,3762
|
|
13
|
+
atdata/dataset.py,sha256=NCc1LGKCaa-miwk2P4g8b7iRb4-Kho0SujU58IQbSJ4,46800
|
|
14
|
+
atdata/lens.py,sha256=s6Ebeacth4cF_yCmnH4MuZ6TwQJmUmrFZ3eIh1jQSZI,9914
|
|
15
|
+
atdata/promote.py,sha256=epFa4VXYbBigAXb_yYPiPQREPVAdmZ53Ab2sjSgybw8,6429
|
|
16
|
+
atdata/repository.py,sha256=n4Rdpi07b2EEQhHGMOnWnV8shqQZ_BD7oEongJdhoto,10163
|
|
17
|
+
atdata/testing.py,sha256=bvnu8knCeLJYm4KzsU9jzw0yHYappgPk41UN-O2aLT4,10949
|
|
18
|
+
atdata/atmosphere/__init__.py,sha256=C8YhxR9PHHUt5kDSfx9lFyMlyCPdQ1fhE6t_b7rYHfM,10024
|
|
19
|
+
atdata/atmosphere/_types.py,sha256=UTRe-jgn0IPFcK1D00Y9A2GGPmQKABevHbebtRRXHHY,9571
|
|
20
|
+
atdata/atmosphere/client.py,sha256=GZO6YX0SOtFr3G5y7Cpl9sckHsZfVeumUUXB7UVbW-4,17726
|
|
21
|
+
atdata/atmosphere/lens.py,sha256=3d7GDoSsYLWJqeAe2T7WFbF59w7BWVc_B1HfwxVeeb4,9203
|
|
22
|
+
atdata/atmosphere/records.py,sha256=1BPZjSJFL_O71SVdA-fKEEkmFdCnGkjRl88uy8XMvJ0,15815
|
|
23
|
+
atdata/atmosphere/schema.py,sha256=GcKSeIGgnqvxmPWWU23Z2sHO78WJX9raKQWtYK-difs,7636
|
|
24
|
+
atdata/atmosphere/store.py,sha256=WgMHoBUsuoM9DQ99ZmXJ3r-d8v3-qHDC6c3DMntHFBI,6273
|
|
25
|
+
atdata/cli/__init__.py,sha256=_snwVqTt1qOc_cuXuEEhTTQyrD2nqd2TncZF8PCngPM,5798
|
|
26
|
+
atdata/cli/diagnose.py,sha256=L1wY2xWOr-8XUd5PZngi4t_r72rQBa8YXsY71dxFA20,5483
|
|
27
|
+
atdata/cli/infra.py,sha256=pL3Dg89fM7QZO4j4R037eZKJnHUnGf8uZinTvYEzfmA,8057
|
|
28
|
+
atdata/cli/inspect.py,sha256=YoJkWeXj1cHcOuDH9Z3btWMhiFNOG6JG3x-tScee-84,2019
|
|
29
|
+
atdata/cli/preview.py,sha256=n90Eqj920JEi7nBl4NnbmEhZxKLzHoR2CfNI9lkbGuc,1735
|
|
30
|
+
atdata/cli/schema.py,sha256=JwbQOBOPcvDTF6QgptuqZF5VEEMHrjxlj959q6E1DQY,2882
|
|
31
|
+
atdata/index/__init__.py,sha256=dbJoHCgO3QbCAyilmEmdSsU7-RhifBa2N7h1L9Y8Gls,1329
|
|
32
|
+
atdata/index/_entry.py,sha256=Cea1uAbURlBVn3vlrcLD5mtwIaqYoHjgb1GVsBqrszw,5264
|
|
33
|
+
atdata/index/_index.py,sha256=XUGvSHEatqR1IHkVJ3F2YCJNPBppQ6tZzTMRfeBPpLQ,43726
|
|
34
|
+
atdata/index/_schema.py,sha256=_-1RgFaYyBHeMhX_PzOCh8ZvtH92aGUWrOVCvMSVQSo,11604
|
|
35
|
+
atdata/lexicons/__init__.py,sha256=rdkasqWXggLmvBQtLl-hjeVCvjxGmOZN5tjriJ88Ch4,3468
|
|
36
|
+
atdata/lexicons/ac.foundation.dataset.arrayFormat.json,sha256=XVXqKRJKxuWOxlGVxIvMWQNqV5movjtn9JPtocf93Mo,701
|
|
37
|
+
atdata/lexicons/ac.foundation.dataset.getLatestSchema.json,sha256=rtgPz5jZ2memj1HlWcqvF3xGTY0CBvM5ApzAhbtBBaU,2154
|
|
38
|
+
atdata/lexicons/ac.foundation.dataset.lens.json,sha256=JG-I2WXlvsDDbAtO9CTcUPm57B-CuOeLVvjkhB6w5R4,3050
|
|
39
|
+
atdata/lexicons/ac.foundation.dataset.record.json,sha256=dAJK7bKx_ng4AAlkdW8838GbMM12uxeonP89wvEHV4U,3174
|
|
40
|
+
atdata/lexicons/ac.foundation.dataset.schema.json,sha256=9hQRXu9WEuX68ljOOG4XLfy1jVn7Y0uPTlhvBO5lmx0,4511
|
|
41
|
+
atdata/lexicons/ac.foundation.dataset.schemaType.json,sha256=FK3YZuR1r_ozZJOpxfdyWm76xmKSjR9O8tvU1fLszn8,652
|
|
42
|
+
atdata/lexicons/ac.foundation.dataset.storageBlobs.json,sha256=NjeRm72N59GanJyyJwaS3JSph7Cu6nZZHoinInh-n8Q,700
|
|
43
|
+
atdata/lexicons/ac.foundation.dataset.storageExternal.json,sha256=iyZ1g20O7yG93cmwd6Q9aXrmR7tPsdq1H_GGt4Fb8oo,733
|
|
44
|
+
atdata/lexicons/ndarray_shim.json,sha256=RvcOsRByfEFPQeJyaPu_QfG_gDYLA6I525-_yrRQ5g4,932
|
|
45
|
+
atdata/local/__init__.py,sha256=699CAnyMUPCOIdaFDw-HStUUG_qj1rovWQuCkmrSx6U,1791
|
|
46
|
+
atdata/local/_repo_legacy.py,sha256=zP_mh4p4-tJlPbu7kaNdMjNNb2S0e8HcuINPcuchQ7I,7542
|
|
47
|
+
atdata/manifest/__init__.py,sha256=GB7V8OXLDAIuUX4JSBVL7_UV9CFALMiMfoeZvoNkug0,1309
|
|
48
|
+
atdata/manifest/_aggregates.py,sha256=yabfBJtdVqOBWbkNqg9gp0BgpG62wi3QsGYlHgAAcFk,4198
|
|
49
|
+
atdata/manifest/_builder.py,sha256=abU5cnRnIJZ_qf_BKr6-fMYU1HaJWkBVgmGL0WzRRzU,5252
|
|
50
|
+
atdata/manifest/_fields.py,sha256=4Mm31HGb3qRwvp5Kn9Pp-4dX0tlNrQHxEDZJnBzFpos,5003
|
|
51
|
+
atdata/manifest/_manifest.py,sha256=hPcURPjjPS5r3H_veVshwT6Qw-lC9eQll84Fos1xrCE,4852
|
|
52
|
+
atdata/manifest/_query.py,sha256=25_0i60jWQhuMXsuuVLvSPS8v9pejTi5Bik99e2L99A,4641
|
|
53
|
+
atdata/manifest/_writer.py,sha256=_g2YZof-GnN3nVLpAAE5fDmsV9GzlPYf2oa1BWYswxI,2206
|
|
54
|
+
atdata/providers/__init__.py,sha256=LDziQc6Dc0QCfJcr_sDDqxArstDB0dSZHGgXCIIXbzo,848
|
|
55
|
+
atdata/providers/_base.py,sha256=3ICfgo2AWrRyAHrH8AJM4F0ssDBVD_K5iZAuQcUFLGA,4402
|
|
56
|
+
atdata/providers/_factory.py,sha256=9clKbch3gxqJWufY-HIbbfaBstzoq1LOcMrJOKHTPhw,2039
|
|
57
|
+
atdata/providers/_postgres.py,sha256=BpbjiD9jifLO74aWttSq4JgVoecAypCoYzO_7DdAZuQ,7402
|
|
58
|
+
atdata/providers/_redis.py,sha256=VljNKSsLAX5H0NoOuqkuLQeQAFuuettq1MnpBJgnqhw,6054
|
|
59
|
+
atdata/providers/_sqlite.py,sha256=urZWl7ErgKJJ1uBpnmmdkz7uWnrKGkJDIaTvAdyN7Uo,6486
|
|
60
|
+
atdata/stores/__init__.py,sha256=juot7U0m8L5BauOvgsfq7mzdCYgSF5kzDjvSeo-KZ84,458
|
|
61
|
+
atdata/stores/_disk.py,sha256=vHwNtE9lE1on3YTBJw5t_0tiwZjPhskNxCjpprK3sUI,3599
|
|
62
|
+
atdata/stores/_s3.py,sha256=7KuIIZgqaiaNjULlKC3QPbLkKaj7rRVSYJt5zU_OEXI,12809
|
|
63
|
+
atdata-0.3.1b1.dist-info/METADATA,sha256=wVRVllAuP9wa20G9a43T7YO1kf3iHVCQ27o5DCO7Mqo,7408
|
|
64
|
+
atdata-0.3.1b1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
65
|
+
atdata-0.3.1b1.dist-info/entry_points.txt,sha256=6-iQr1veSTq-ac94bLyfcyGHprrZWevPEd12BWX37tQ,39
|
|
66
|
+
atdata-0.3.1b1.dist-info/licenses/LICENSE,sha256=Pz2eACSxkhsGfW9_iN60pgy-enjnbGTj8df8O3ebnQQ,16726
|
|
67
|
+
atdata-0.3.1b1.dist-info/RECORD,,
|
atdata-0.3.0b1.dist-info/RECORD
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
atdata/.gitignore,sha256=ROcLwaiURIGOAYGFpakac_WEeKS4hH4HxJuscfDGo2s,10
|
|
2
|
-
atdata/__init__.py,sha256=TXEvc6R_VQ4zzjHr9OIqi_hhwfc6OqerVWajtDRwJTA,3249
|
|
3
|
-
atdata/_cid.py,sha256=6wLV_dcQJy5Eb-wld7_h7Kcp7QoVixIqUDIIoSwpQms,3992
|
|
4
|
-
atdata/_exceptions.py,sha256=a2IzmTJqLyIgQ0RkW3KhaaaSDdQJGLoXzuHfEX0DfB4,5390
|
|
5
|
-
atdata/_helpers.py,sha256=e-1lChOY9jvihs5Q04Tp5Rp9oKIoVf5N4wuuwv0Hl64,2224
|
|
6
|
-
atdata/_hf_api.py,sha256=ThNoVDIztbJCLtIKSCol4Tm7Lf1TqbU4E-fFsKt5FaA,24318
|
|
7
|
-
atdata/_logging.py,sha256=Wj9MTe9xCP_awiQYfa7219Fb443Rkwu_jIqM-m2u2GA,2225
|
|
8
|
-
atdata/_protocols.py,sha256=LYeM0eIn5nQ56DssdGFd-CvJFXh9C3YR2GLOSFxg1Kw,14479
|
|
9
|
-
atdata/_schema_codec.py,sha256=OpRs8bfCPGCEJsBKlp8rfndBldco3jwQQ7k9npN-EPQ,14395
|
|
10
|
-
atdata/_sources.py,sha256=A7HMkS_dqN5Sx7rG1nZsO1Laxozt3C65_P2Hiv41VXk,16624
|
|
11
|
-
atdata/_stub_manager.py,sha256=Heh0HAYjVjnkUQcPWAEOrkkEKN3Mi9vTJPA-ZRseFw8,19141
|
|
12
|
-
atdata/_type_utils.py,sha256=mhD0ywXgIEpVaAWpGVKGneUOh0cmI96zKz6g2O1bdg0,3762
|
|
13
|
-
atdata/dataset.py,sha256=ogclAFyeDh8ZGvgiDViiDn_sbkh94rpXgR-jtwFpi6M,41123
|
|
14
|
-
atdata/lens.py,sha256=s6Ebeacth4cF_yCmnH4MuZ6TwQJmUmrFZ3eIh1jQSZI,9914
|
|
15
|
-
atdata/promote.py,sha256=W8I_OCTStKY_Mu1OJvtVyJrWqmXjRQaTQLJ_Id-nBmA,6274
|
|
16
|
-
atdata/repository.py,sha256=5ZlYOw5VQdkuN0rntfw26CA_O_YsZLYMSGaRPPPn9Gc,10205
|
|
17
|
-
atdata/testing.py,sha256=OUPXn8CBuxNVyhj-lgIiw_YkTNrewdEkgFyfwogLH3E,10858
|
|
18
|
-
atdata/atmosphere/__init__.py,sha256=g8larX6DIA4AVFgt-g3vm6Ijsb4vU3YOAFPNCDMd-sk,10064
|
|
19
|
-
atdata/atmosphere/_types.py,sha256=MRhXnmAuQLJPdoq1skrBGXCsaQYdtKG_nA3YlSjwJXY,9595
|
|
20
|
-
atdata/atmosphere/client.py,sha256=acw82w3_cxWbWDtIRvH1VDHGJSroGqhSenFFostXTXo,16210
|
|
21
|
-
atdata/atmosphere/lens.py,sha256=EnrddTD-SAnyxU0XF__QkePLUhb4lPwfFLaseL_STDc,9260
|
|
22
|
-
atdata/atmosphere/records.py,sha256=Vkc7K0XFozwXVaDgXP706Z1-De1C95ZPtra1EQE3MGQ,15860
|
|
23
|
-
atdata/atmosphere/schema.py,sha256=xvIyJbzbZrcAi7TOWFQXXfgqAyuhb5Yqttf9dSy9x50,7758
|
|
24
|
-
atdata/atmosphere/store.py,sha256=NR4tGS9u3_ogvnyyOHDVF0tRKChruj_NE9Df4qrZiDU,6324
|
|
25
|
-
atdata/cli/__init__.py,sha256=3ZtMcYmx78L_8LqzPHaLlEOlFXl_uHBJtffSL6UB-kE,5834
|
|
26
|
-
atdata/cli/diagnose.py,sha256=Det9ozOvxXKd8Abu-xEsMjaXR34H_cuSX9MJJIlhnsA,5483
|
|
27
|
-
atdata/cli/inspect.py,sha256=YoJkWeXj1cHcOuDH9Z3btWMhiFNOG6JG3x-tScee-84,2019
|
|
28
|
-
atdata/cli/local.py,sha256=dYosOuVmp_PIM8re4DFsm00uspUJftTOZ0TBBNlTqAM,8105
|
|
29
|
-
atdata/cli/preview.py,sha256=n90Eqj920JEi7nBl4NnbmEhZxKLzHoR2CfNI9lkbGuc,1735
|
|
30
|
-
atdata/cli/schema.py,sha256=JwbQOBOPcvDTF6QgptuqZF5VEEMHrjxlj959q6E1DQY,2882
|
|
31
|
-
atdata/local/__init__.py,sha256=ZBJspq-dKOYZESUfxnQ0vIqpyBXGo2Fy116RvfFtDgs,1872
|
|
32
|
-
atdata/local/_entry.py,sha256=Cea1uAbURlBVn3vlrcLD5mtwIaqYoHjgb1GVsBqrszw,5264
|
|
33
|
-
atdata/local/_index.py,sha256=lCl0JAmHxmhz9lFlMiMvO_TApYARK3dyiBAJTVUaYO4,34305
|
|
34
|
-
atdata/local/_repo_legacy.py,sha256=7njQTp9HReyWNcIOyYG_Zg90nhEI8KRVCLI0ANnoUpY,7541
|
|
35
|
-
atdata/local/_s3.py,sha256=7KuIIZgqaiaNjULlKC3QPbLkKaj7rRVSYJt5zU_OEXI,12809
|
|
36
|
-
atdata/local/_schema.py,sha256=myCZ7eTJ0hKLQuF5qBvjzttyenKSqXd3YDdamFdRw1E,11634
|
|
37
|
-
atdata/manifest/__init__.py,sha256=GB7V8OXLDAIuUX4JSBVL7_UV9CFALMiMfoeZvoNkug0,1309
|
|
38
|
-
atdata/manifest/_aggregates.py,sha256=yabfBJtdVqOBWbkNqg9gp0BgpG62wi3QsGYlHgAAcFk,4198
|
|
39
|
-
atdata/manifest/_builder.py,sha256=abU5cnRnIJZ_qf_BKr6-fMYU1HaJWkBVgmGL0WzRRzU,5252
|
|
40
|
-
atdata/manifest/_fields.py,sha256=4Mm31HGb3qRwvp5Kn9Pp-4dX0tlNrQHxEDZJnBzFpos,5003
|
|
41
|
-
atdata/manifest/_manifest.py,sha256=hPcURPjjPS5r3H_veVshwT6Qw-lC9eQll84Fos1xrCE,4852
|
|
42
|
-
atdata/manifest/_query.py,sha256=25_0i60jWQhuMXsuuVLvSPS8v9pejTi5Bik99e2L99A,4641
|
|
43
|
-
atdata/manifest/_writer.py,sha256=_g2YZof-GnN3nVLpAAE5fDmsV9GzlPYf2oa1BWYswxI,2206
|
|
44
|
-
atdata/providers/__init__.py,sha256=LDziQc6Dc0QCfJcr_sDDqxArstDB0dSZHGgXCIIXbzo,848
|
|
45
|
-
atdata/providers/_base.py,sha256=3ICfgo2AWrRyAHrH8AJM4F0ssDBVD_K5iZAuQcUFLGA,4402
|
|
46
|
-
atdata/providers/_factory.py,sha256=9clKbch3gxqJWufY-HIbbfaBstzoq1LOcMrJOKHTPhw,2039
|
|
47
|
-
atdata/providers/_postgres.py,sha256=BpbjiD9jifLO74aWttSq4JgVoecAypCoYzO_7DdAZuQ,7402
|
|
48
|
-
atdata/providers/_redis.py,sha256=VljNKSsLAX5H0NoOuqkuLQeQAFuuettq1MnpBJgnqhw,6054
|
|
49
|
-
atdata/providers/_sqlite.py,sha256=urZWl7ErgKJJ1uBpnmmdkz7uWnrKGkJDIaTvAdyN7Uo,6486
|
|
50
|
-
atdata-0.3.0b1.dist-info/METADATA,sha256=zxCV6U6eMrtYZII4hBIrY7tZ9hs4ntTdAwPRhg_HISk,7410
|
|
51
|
-
atdata-0.3.0b1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
52
|
-
atdata-0.3.0b1.dist-info/entry_points.txt,sha256=6-iQr1veSTq-ac94bLyfcyGHprrZWevPEd12BWX37tQ,39
|
|
53
|
-
atdata-0.3.0b1.dist-info/licenses/LICENSE,sha256=Pz2eACSxkhsGfW9_iN60pgy-enjnbGTj8df8O3ebnQQ,16726
|
|
54
|
-
atdata-0.3.0b1.dist-info/RECORD,,
|
|
File without changes
|
/atdata/{local → stores}/_s3.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|