API Reference¶
DataSluice ships three public API areas: the package root (catalog models, typed catalog errors, and the retained data-plane facade), the public catalog contract suite, and the explicit platform packages.
Package root¶
Shared catalog models, typed catalog errors, and the direct-resource
data-plane facade (DataSluice, DirectResourceLocator,
OpenedResource, normalized records, and envelopes):
DataSluice — one Python interface for open-data discovery, extraction, format normalization, and pipeline integration.
Artifact
dataclass
¶
A strict, immutable schema-v1 materialization envelope.
Source code in src/datasluice/domain/artifact.py
from_dict(value)
classmethod
¶
Decode one strict schema-v1 Artifact envelope.
Source code in src/datasluice/domain/artifact.py
to_dict()
¶
Return a fresh JSON-safe Artifact envelope.
Source code in src/datasluice/domain/artifact.py
ArtifactProvenance
dataclass
¶
Typed provenance for one materialized Artifact.
Source code in src/datasluice/domain/artifact.py
from_dict(value)
classmethod
¶
Decode one strict provenance envelope.
Source code in src/datasluice/domain/artifact.py
to_dict()
¶
Return a fresh JSON-safe provenance envelope.
Source code in src/datasluice/domain/artifact.py
CatalogError
¶
Bases: DataSluiceError
Base normalized error with a portable safe next action.
Source code in src/datasluice/errors/catalog.py
CatalogId
dataclass
¶
A platform- and resource-kind-scoped opaque catalog identifier.
Source code in src/datasluice/domain/catalog/ids.py
from_dict(value)
classmethod
¶
Decode one strict schema-v1 catalog identifier envelope.
Source code in src/datasluice/domain/catalog/ids.py
to_dict()
¶
Return a fresh JSON-safe catalog identifier envelope.
Source code in src/datasluice/domain/catalog/ids.py
CatalogPlatform
dataclass
¶
An explicit platform identity for one catalog deployment family.
Source code in src/datasluice/domain/catalog/ids.py
CatalogUnavailableError
¶
Bases: CatalogError
Raised when a catalog deployment or circuit is unavailable.
Source code in src/datasluice/errors/catalog.py
ChecksumMismatchError
¶
Bases: DownloadError
Raised when a downloaded file's checksum does not match.
Source code in src/datasluice/exceptions.py
ConfigError
¶
Bases: DataSluiceError
Raised when configuration is invalid or incomplete.
CredentialScope
dataclass
¶
Host-scoped policy controlling where credentials may be sent.
Attributes:
| Name | Type | Description |
|---|---|---|
allowed_hosts |
tuple[str, ...]
|
Hostnames the credential may be sent to. |
allowed_schemes |
tuple[str, ...]
|
URL schemes the credential may travel over. |
send_on_redirect |
bool
|
Whether credentials are retained on redirects to allowed hosts. |
Source code in src/datasluice/domain/credentials.py
DataSluice
¶
Canonical public facade for discovery, resource access, and materialization.
Source code in src/datasluice/application.py
238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 | |
close()
¶
Close this facade and any resource wrappers it owns.
Source code in src/datasluice/application.py
download_many(resources, destination)
¶
Raw bulk-copy resources into a destination directory.
materialize(resource, destination_uri, *, mode='parquet')
¶
Materialize one Resource or ResourceLocator into an Artifact.
Source code in src/datasluice/application.py
open(resource)
¶
Return a lazy, single-use OpenedResource wrapper.
open_catalog(factory, context)
¶
Return one explicit caller-selected canonical catalog connector.
Source code in src/datasluice/application.py
resolve(locator)
¶
Resolve one public locator into the canonical Resource model.
DataSluiceError
¶
Dataset
dataclass
¶
A dataset is a logical grouping of one or more resources.
Attributes:
| Name | Type | Description |
|---|---|---|
id |
str
|
Portal-native dataset identifier. |
title |
str | None
|
Human-readable dataset title. |
name |
str | None
|
Machine-friendly slug or name. |
description |
str | None
|
Longer free-text description (may contain Markdown/HTML). |
resources |
list[Resource]
|
List of downloadable resources within this dataset. |
organization |
Organization | None
|
Publishing organization, if known. |
license |
License | None
|
Default license for resources in this dataset. |
tags |
list[str]
|
Free-form tags or keywords. |
themes |
list[str]
|
Categorization themes or groups. |
language |
list[str]
|
ISO language code(s) for the data. |
created |
str | None
|
ISO-8601 creation timestamp. |
modified |
str | None
|
ISO-8601 last-modified timestamp. |
metadata_modified |
str | None
|
ISO-8601 timestamp of last metadata change. |
url |
str | None
|
Canonical URL to the dataset on the portal. |
extra |
dict[str, Any]
|
Portal-native fields not captured above. |
Source code in src/datasluice/domain/dataset.py
DatasetRecord
dataclass
¶
A normalized immutable dataset record.
Source code in src/datasluice/domain/catalog/models.py
from_dict(value)
classmethod
¶
Decode one strict schema-v1 dataset envelope.
Source code in src/datasluice/domain/catalog/models.py
to_dict()
¶
Return a fresh JSON-safe dataset envelope.
Source code in src/datasluice/domain/catalog/models.py
DetectionResult
dataclass
¶
Outcome of portal auto-detection with confidence and evidence.
Attributes:
| Name | Type | Description |
|---|---|---|
portal_type |
str | None
|
Identified portal type, or |
confidence |
float
|
Confidence score in the range |
evidence |
Sequence[DetectionEvidence]
|
Evidence records supporting the detection. |
extra |
Mapping[str, Any]
|
Portal-native detection fields not captured above. |
Source code in src/datasluice/domain/detection.py
Digest
dataclass
¶
A structured SHA-256 digest.
Source code in src/datasluice/domain/artifact.py
from_dict(value)
classmethod
¶
Decode one strict digest envelope.
Source code in src/datasluice/domain/artifact.py
DirectResourceLocator
dataclass
¶
A validated, serializable direct resource reference.
Source code in src/datasluice/application.py
from_dict(value)
classmethod
¶
Decode one strict direct locator envelope.
Source code in src/datasluice/application.py
to_dict()
¶
Return a fresh, secret-free locator envelope.
Source code in src/datasluice/application.py
DownloadError
¶
Bases: DataSluiceError
Raised when a resource download fails.
ForbiddenError
¶
Bases: CatalogError
Raised when known credentials lack the required permission or role.
Source code in src/datasluice/errors/catalog.py
FormatError
¶
Bases: DataSluiceError
Raised when a resource cannot be parsed in the expected format.
HttpDownload
dataclass
¶
Bases: ResourceAccess
Resource fetched over HTTP(S).
Attributes:
| Name | Type | Description |
|---|---|---|
url |
str
|
Absolute URL to download. |
method |
str
|
HTTP method (default |
kind |
str
|
Discriminator, always |
Source code in src/datasluice/domain/access.py
License
dataclass
¶
A license under which an open-data resource or dataset is published.
Attributes:
| Name | Type | Description |
|---|---|---|
id |
str
|
Canonical license identifier (e.g. |
title |
str | None
|
Human-readable license name. |
url |
str | None
|
URL to the full license text. |
Source code in src/datasluice/domain/license.py
LocalFile
dataclass
¶
Bases: ResourceAccess
Resource available on the local filesystem.
Attributes:
| Name | Type | Description |
|---|---|---|
path |
str
|
Local filesystem path. |
kind |
str
|
Discriminator, always |
Source code in src/datasluice/domain/access.py
NativeCatalogError
¶
Bases: DataSluiceError
A redacted, bounded platform-native failure retained for native services.
Source code in src/datasluice/errors/catalog.py
NativeRecord
dataclass
¶
A lossless immutable envelope for one platform-native record.
Source code in src/datasluice/domain/catalog/models.py
from_dict(value)
classmethod
¶
Decode one strict schema-v1 native record envelope.
Source code in src/datasluice/domain/catalog/models.py
to_dict()
¶
Return a fresh JSON-safe native record envelope.
Source code in src/datasluice/domain/catalog/models.py
ObjectStorage
dataclass
¶
Bases: ResourceAccess
Resource stored in object storage (S3, GCS, Azure Blob).
Attributes:
| Name | Type | Description |
|---|---|---|
uri |
str
|
Object URI (e.g. |
kind |
str
|
Discriminator, always |
Source code in src/datasluice/domain/access.py
OpenedResource
¶
Lazy, single-use application wrapper over a Resource reader.
Source code in src/datasluice/application.py
339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 | |
is_open
property
¶
Whether the underlying data stream is currently open.
close()
¶
iter_batches()
¶
Iterate batches once, closing every stream when iteration finishes.
Source code in src/datasluice/application.py
materialize(destination_uri, *, mode='parquet')
¶
Materialize this resource once and return its Artifact envelope.
Source code in src/datasluice/application.py
to_arrow()
¶
to_duckdb(**kwargs)
¶
Consume this resource into a DuckDB relation.
to_pandas()
¶
to_polars()
¶
transform(pipeline)
¶
Attach one transform pipeline without opening the resource.
OpenedResourceConsumedError
¶
Bases: DataSluiceError
Raised when an opened resource is consumed or closed more than once.
Organization
dataclass
¶
An organization or publisher of open-data datasets.
Attributes:
| Name | Type | Description |
|---|---|---|
id |
str
|
Portal-native organization identifier. |
name |
str | None
|
Display name of the organization. |
title |
str | None
|
Alternative human-readable title. |
description |
str | None
|
Longer description, if available. |
url |
str | None
|
URL to the organization's page on the portal. |
logo_url |
str | None
|
URL to the organization's logo image. |
created |
str | None
|
ISO-8601 creation timestamp, if available. |
extra |
dict[str, Any]
|
Portal-native fields not captured above. |
Source code in src/datasluice/domain/organization.py
Query
dataclass
¶
Portal-agnostic search parameters.
Attributes:
| Name | Type | Description |
|---|---|---|
text |
str | None
|
Free-text search query. |
tags |
list[str]
|
Filter by one or more tags. |
organizations |
list[str]
|
Filter by organization name(s). |
groups |
list[str]
|
Filter by group or theme name(s). |
res_format |
str | None
|
Filter by resource format (e.g. |
license_id |
str | None
|
Filter by license identifier. |
sort |
str | None
|
Sort field and direction (e.g. |
limit |
int
|
Maximum number of results to return. |
offset |
int
|
Number of results to skip (for pagination). |
Source code in src/datasluice/domain/query.py
QueryAccess
dataclass
¶
Bases: ResourceAccess
Resource accessed via a query endpoint (SQL/SoQL/datastore).
Attributes:
| Name | Type | Description |
|---|---|---|
endpoint |
str
|
Query endpoint URL. |
query_language |
str
|
Query language identifier (empty when unspecified). |
kind |
str
|
Discriminator, always |
Source code in src/datasluice/domain/access.py
Resource
dataclass
¶
A single downloadable resource (file) within a dataset.
Attributes:
| Name | Type | Description |
|---|---|---|
id |
str
|
Portal-native resource identifier. |
name |
str | None
|
Human-readable resource name or title. |
url |
str | None
|
Direct download URL. |
format |
str | None
|
Canonical file format (e.g. |
media_type |
str | None
|
IANA media type if known (e.g. |
description |
str | None
|
Optional longer description. |
size |
int | None
|
File size in bytes, if known. |
license |
License | None
|
License under which this resource is published. |
created |
str | None
|
ISO-8601 creation timestamp, if available. |
modified |
str | None
|
ISO-8601 last-modified timestamp, if available. |
access |
ResourceAccess | None
|
How the resource is reached (HTTP, object storage, local file, query).
Defaults to |
schema |
Schema | None
|
Advisory portal-native column descriptors. Readers infer the Arrow schema from actual data; this field is display-only. |
extra |
dict[str, Any]
|
Portal-native fields not captured above. |
Source code in src/datasluice/domain/resource.py
normalize_format(raw)
classmethod
¶
Normalise a raw format string or media type to canonical form.
ResourceAccess
dataclass
¶
Base descriptor for how a resource is accessed.
Subclasses discriminate on kind so match-dispatch
can route to the correct reader without complex isinstance chains.
Attributes:
| Name | Type | Description |
|---|---|---|
kind |
str
|
Discriminator string identifying the access variant. |
extra |
Mapping[str, Any]
|
Portal-native access fields not captured above. |
Source code in src/datasluice/domain/access.py
ResourceKind
dataclass
¶
An explicit resource kind scoped by a CatalogId.
Source code in src/datasluice/domain/catalog/ids.py
ResourceResolutionError
¶
Bases: DataSluiceError
Raised when a public resource locator cannot select exactly one resource.
ResultEnvelope
dataclass
¶
A typed immutable result collection with its catalog metadata.
Source code in src/datasluice/domain/catalog/models.py
from_dict(value, *, item_decoder)
classmethod
¶
Decode one strict schema-v1 result envelope with an item decoder.
Source code in src/datasluice/domain/catalog/models.py
to_dict()
¶
Return a fresh JSON-safe result envelope.
Source code in src/datasluice/domain/catalog/models.py
Schema
dataclass
¶
Schema describing the columns of a tabular resource.
Attributes:
| Name | Type | Description |
|---|---|---|
name |
str
|
Logical name for the schema. |
columns |
Sequence[dict[str, Any]]
|
Column descriptors (name, type, nullable, and portal-native fields). |
version |
str
|
Schema evolution version. |
extra |
Mapping[str, Any]
|
Portal-native schema fields not captured above. |
Source code in src/datasluice/domain/schema.py
SearchResult
dataclass
¶
A paginated page of search results.
Attributes:
| Name | Type | Description |
|---|---|---|
datasets |
list[Dataset]
|
Datasets returned in this page. |
total |
int
|
Total number of matching datasets across all pages. |
page |
int
|
Current page number (1-based). |
page_size |
int
|
Number of results per page. |
has_next |
bool
|
Whether additional pages are available. |
Source code in src/datasluice/domain/result.py
StateStoreError
¶
Bases: DataSluiceError
Raised when a state store cannot read or write durable sync state.
A direct child of :class:DataSluiceError because store I/O failures are
neither portal, download, nor format errors: a corrupt or wrong-version
JSON envelope is a data-integrity failure of the local/remote state file.
Fails loud (never silently treats corrupt state as "no state") because
staleness is worse than a loud failure.
Source code in src/datasluice/exceptions.py
StreamAccess
dataclass
¶
Bases: ResourceAccess
Resource consumed as a streaming endpoint.
Attributes:
| Name | Type | Description |
|---|---|---|
url |
str
|
Stream URL. |
kind |
str
|
Discriminator, always |
Source code in src/datasluice/domain/access.py
SyncState
dataclass
¶
Incremental synchronization state for a resource or connector.
Attributes:
| Name | Type | Description |
|---|---|---|
cursor |
dict[str, str]
|
Mapping of resource IDs to watermark values. |
partitions |
dict[str, Any]
|
Partition progress metadata for parallel syncs. |
last_synced_at |
str | None
|
ISO-8601 timestamp of the last successful sync. |
extra |
dict[str, Any]
|
Connector-native sync fields not captured above. |
Source code in src/datasluice/domain/sync_state.py
SyncStateConflictError
¶
Bases: StateStoreError
Raised when a state write loses an optimistic compare-and-swap race.
The version read before the write had already been replaced by a concurrent writer; the caller must re-read and re-apply their mutation rather than silently overwrite another writer's state.
Source code in src/datasluice/exceptions.py
UnauthenticatedError
¶
Bases: CatalogError
Raised when credentials are absent, invalid, or expired.
Source code in src/datasluice/errors/catalog.py
UnsupportedCapabilityError
¶
Bases: CatalogError
Raised when a deployment does not support a requested operation.
Source code in src/datasluice/errors/catalog.py
resource_locator_from_dict(value)
¶
Decode one strict, tagged ResourceLocator envelope.
Source code in src/datasluice/application.py
Public catalog contract suite¶
The executable contract API for built-in and third-party connectors — normalized client Protocols, pinned reference fixtures, the compliance runner and report, certification, and namespaced manifest types. This is the only public entry point for contract execution and certification:
Public executable contracts for catalog connectors.
AsyncCatalogClient
¶
Bases: Protocol
Asynchronous normalized catalog client surface.
Source code in src/datasluice/contracts/catalog/protocols.py
datasets
property
¶
Return normalized dataset operations.
organizations
property
¶
Return normalized organization operations.
resources
property
¶
Return normalized resource operations.
__aenter__()
async
¶
__aexit__(exc_type, exc_value, traceback)
async
¶
Close resources on context exit.
aclose()
async
¶
capability(operation_id)
¶
CaseOutcome
dataclass
¶
Immutable evidence for one catalog contract case execution.
Source code in src/datasluice/contracts/catalog/report.py
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | |
case_id
property
¶
Return the stable runner-owned case identity.
from_dict(value)
classmethod
¶
Decode one strict JSON-safe case outcome envelope.
Source code in src/datasluice/contracts/catalog/report.py
to_dict()
¶
Return a fresh JSON-safe case outcome envelope.
Source code in src/datasluice/contracts/catalog/report.py
CatalogCertification
dataclass
¶
Immutable proof that a report satisfies one manifest and fixture binding.
Source code in src/datasluice/contracts/catalog/certification.py
CatalogContractCase
dataclass
¶
One deterministic catalog operation/state/mode contract case.
Source code in src/datasluice/contracts/catalog/runner.py
pytest_id
property
¶
Return the stable identifier used by parametrized pytest cases.
CertificationRecord
dataclass
¶
Versioned identity of a connector's public contract report.
Source code in src/datasluice/domain/catalog/extensions.py
ComplianceReport
dataclass
¶
Schema-versioned aggregate evidence from catalog contract execution.
Source code in src/datasluice/contracts/catalog/report.py
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 | |
coverage_by_mode
property
¶
Return deterministic outcome coverage counts by execution mode.
coverage_by_state
property
¶
Return deterministic outcome coverage counts by execution state.
coverage_by_tier
property
¶
Return deterministic outcome coverage counts by declared contract tier.
fingerprint
property
¶
Return the stable SHA-256 fingerprint of the report envelope.
gaps
property
¶
Return explicit missing or non-passing required case evidence.
is_compliant
property
¶
Return whether all runner-owned required evidence passed.
report_id
property
¶
Return the certificate-compatible report identity.
from_dict(value)
classmethod
¶
Decode one strict JSON-safe compliance report envelope.
Source code in src/datasluice/contracts/catalog/report.py
to_dict()
¶
Return a strict, deterministic, JSON-safe compliance report envelope.
Source code in src/datasluice/contracts/catalog/report.py
write_json(path)
¶
Write this report only to the caller-selected local path.
ConnectorId
dataclass
¶
Namespaced stable identifier for one connector distribution.
Source code in src/datasluice/domain/catalog/extensions.py
ConnectorManifest
dataclass
¶
Inspectable third-party connector metadata without runtime activation.
Source code in src/datasluice/domain/catalog/extensions.py
is_activated(selected_connector_id)
¶
Return whether an explicit caller selection activates this manifest.
require_activation(selected_connector_id)
¶
Reject implicit activation, inactive manifests, and silent built-in overrides.
Source code in src/datasluice/domain/catalog/extensions.py
DeclaredCapabilityProfile
dataclass
¶
Immutable reviewed declaration for a pinned platform API version.
Source code in src/datasluice/domain/catalog/profiles.py
ReferenceCase
dataclass
¶
One declared deterministic capability outcome.
Source code in src/datasluice/contracts/catalog/fixtures/__init__.py
ReferenceFixtureSet
dataclass
¶
A profile-validated, immutable reference fixture collection.
Source code in src/datasluice/contracts/catalog/fixtures/__init__.py
success_cases
property
¶
Return cases that deterministically reach the reference executor.
SyncCatalogClient
¶
Bases: Protocol
Synchronous normalized catalog client surface.
Source code in src/datasluice/contracts/catalog/protocols.py
catalog_contract_cases(fixture_set)
¶
Generate stable sync and async cases from one pinned fixture set.
Source code in src/datasluice/contracts/catalog/runner.py
certify_catalog_report(*, manifest, profile, fixture_set, cases, report, selected_connector_id)
¶
Certify complete runner-owned evidence without discovering or activating plugins.
Source code in src/datasluice/contracts/catalog/certification.py
load_reference_fixture_set(platform, *, cases_path=None)
¶
Load one profile-bound fixture set without network access or ambient state.
Source code in src/datasluice/contracts/catalog/fixtures/__init__.py
run_catalog_contract(case, *, sync_client, async_client, fixture_set=None)
¶
Execute a finite catalog contract matrix and retain every case outcome.
Source code in src/datasluice/contracts/catalog/runner.py
Platform packages¶
Each platform exports exactly one adapter façade class and one factory function; imports are always explicit and package-level:
Canonical public CKAN connector contract.
CKANAdapter
¶
Expose injected CKAN service projections without a transport implementation.
Source code in src/datasluice/connectors/catalog/ckan/adapter.py
__aenter__()
async
¶
__aexit__(exc_type, exc_value, traceback)
async
¶
Release asynchronous resources on context exit.
Source code in src/datasluice/connectors/catalog/ckan/adapter.py
__enter__()
¶
__exit__(exc_type, exc_value, traceback)
¶
Release synchronous resources on context exit.
aclose()
async
¶
create_ckan_connector(ctx)
¶
Construct a CKAN façade from explicit typed service projections.
Source code in src/datasluice/connectors/catalog/ckan/factory.py
Canonical public uData connector contract.
UDataAdapter
¶
Expose injected uData service projections without a transport implementation.
Source code in src/datasluice/connectors/catalog/udata/adapter.py
__aenter__()
async
¶
__aexit__(exc_type, exc_value, traceback)
async
¶
Release asynchronous resources on context exit.
Source code in src/datasluice/connectors/catalog/udata/adapter.py
__enter__()
¶
__exit__(exc_type, exc_value, traceback)
¶
Release synchronous resources on context exit.
aclose()
async
¶
create_udata_connector(ctx)
¶
Construct a uData façade from explicit typed service projections.
Source code in src/datasluice/connectors/catalog/udata/factory.py
Canonical public Socrata connector contract.
SocrataAdapter
¶
Expose injected Socrata service projections without a transport implementation.
Source code in src/datasluice/connectors/catalog/socrata/adapter.py
__aenter__()
async
¶
__aexit__(exc_type, exc_value, traceback)
async
¶
Release asynchronous resources on context exit.
Source code in src/datasluice/connectors/catalog/socrata/adapter.py
__enter__()
¶
__exit__(exc_type, exc_value, traceback)
¶
Release synchronous resources on context exit.
aclose()
async
¶
create_socrata_connector(ctx)
¶
Construct a Socrata façade from explicit typed service projections.
Source code in src/datasluice/connectors/catalog/socrata/factory.py
The datasluice.connectors.catalog namespace itself re-exports nothing.
Installable named connector extras are owned by Phase 2 packaging work
and are not part of this package surface.