dataerai-sdk 0.2.0b84__tar.gz → 0.2.0.dev2__tar.gz
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.
- dataerai_sdk-0.2.0.dev2/PKG-INFO +676 -0
- dataerai_sdk-0.2.0.dev2/README.md +214 -0
- dataerai_sdk-0.2.0.dev2/dataerai/__init__.py +35 -0
- dataerai_sdk-0.2.0.dev2/dataerai/_daemon.py +57 -0
- dataerai_sdk-0.2.0.dev2/dataerai/_errors.py +17 -0
- dataerai_sdk-0.2.0.dev2/dataerai/_types.py +165 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/_version.py +1 -1
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/bambu/__init__.py +0 -3
- dataerai_sdk-0.2.0.dev2/dataerai/bambu/cli.py +93 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/bambu/fleet_hub.py +5 -22
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/bambu/integration.py +2 -27
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/bambu/recorder.py +0 -5
- dataerai_sdk-0.2.0.dev2/dataerai/client.py +866 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/__init__.py +0 -32
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/api.py +3 -107
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/bases.py +0 -98
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/containers/netcdf.py +6 -9
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/core.py +4 -33
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/data_type_definitions.py +0 -102
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/instruments/AFM/bruker/nanoscope.py +0 -25
- dataerai_sdk-0.2.0.dev2/dataerai/metaextract/instruments/AFM/oxfordAFM/ibw.py +55 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/registry.py +5 -195
- dataerai_sdk-0.2.0.dev2/dataerai/metaextract/spectroscopy/jcamp.py +267 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/viz/metadata.py +57 -218
- dataerai_sdk-0.2.0.dev2/dataerai/metaextract/viz/metadata_schemas/__init__.py +12 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/viz/metadata_schemas/afm.py +2 -75
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/access.py +9 -103
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/attribution/client.py +1 -2
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/croissant.py +1 -1
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/lineage.py +6 -11
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/staging.py +2 -2
- dataerai_sdk-0.2.0.dev2/dataerai/runner/__init__.py +18 -0
- dataerai_sdk-0.2.0.dev2/dataerai/runner/agent.py +320 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/runner/api.py +10 -65
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/runner/artifacts.py +12 -44
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/runner/capabilities.py +4 -122
- dataerai_sdk-0.2.0.dev2/dataerai/runner/cli.py +225 -0
- dataerai_sdk-0.2.0.dev2/dataerai/runner/config.py +41 -0
- dataerai_sdk-0.2.0.dev2/dataerai/runner/device_auth.py +119 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/runner/executor.py +1 -5
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/runner/handlers/__init__.py +0 -6
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/runner/heartbeat.py +2 -4
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/runner/telemetry.py +4 -44
- dataerai_sdk-0.2.0.dev2/dataerai_sdk.egg-info/PKG-INFO +676 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai_sdk.egg-info/SOURCES.txt +1 -99
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai_sdk.egg-info/requires.txt +0 -45
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/pyproject.toml +4 -66
- dataerai_sdk-0.2.0.dev2/tests/test_client.py +1188 -0
- dataerai_sdk-0.2.0.dev2/tests/test_sdk_demos.py +34 -0
- dataerai_sdk-0.2.0b84/PKG-INFO +0 -1630
- dataerai_sdk-0.2.0b84/README.md +0 -1131
- dataerai_sdk-0.2.0b84/dataerai/__init__.py +0 -128
- dataerai_sdk-0.2.0b84/dataerai/_daemon.py +0 -67
- dataerai_sdk-0.2.0b84/dataerai/_darwin_acl_probe.py +0 -56
- dataerai_sdk-0.2.0b84/dataerai/_endpoint.py +0 -237
- dataerai_sdk-0.2.0b84/dataerai/_errors.py +0 -78
- dataerai_sdk-0.2.0b84/dataerai/_events.py +0 -318
- dataerai_sdk-0.2.0b84/dataerai/_hello.py +0 -66
- dataerai_sdk-0.2.0b84/dataerai/_hello_connection.py +0 -34
- dataerai_sdk-0.2.0b84/dataerai/_hello_exchange.py +0 -167
- dataerai_sdk-0.2.0b84/dataerai/_hello_key.py +0 -152
- dataerai_sdk-0.2.0b84/dataerai/_hello_key_location.py +0 -81
- dataerai_sdk-0.2.0b84/dataerai/_transport.py +0 -318
- dataerai_sdk-0.2.0b84/dataerai/_types.py +0 -731
- dataerai_sdk-0.2.0b84/dataerai/_windows_identity.py +0 -149
- dataerai_sdk-0.2.0b84/dataerai/_windows_key.py +0 -407
- dataerai_sdk-0.2.0b84/dataerai/_windows_key_acl.py +0 -76
- dataerai_sdk-0.2.0b84/dataerai/bambu/cli.py +0 -171
- dataerai_sdk-0.2.0b84/dataerai/bambu/feature_access.py +0 -44
- dataerai_sdk-0.2.0b84/dataerai/client.py +0 -2854
- dataerai_sdk-0.2.0b84/dataerai/envelope.py +0 -843
- dataerai_sdk-0.2.0b84/dataerai/magics.py +0 -134
- dataerai_sdk-0.2.0b84/dataerai/metaextract/containers/_netcdf_reader.py +0 -130
- dataerai_sdk-0.2.0b84/dataerai/metaextract/feature_access.py +0 -48
- dataerai_sdk-0.2.0b84/dataerai/metaextract/instruments/AFM/oxfordAFM/ibw.py +0 -79
- dataerai_sdk-0.2.0b84/dataerai/metaextract/instruments/MS/__init__.py +0 -1
- dataerai_sdk-0.2.0b84/dataerai/metaextract/instruments/MS/hiden/__init__.py +0 -1
- dataerai_sdk-0.2.0b84/dataerai/metaextract/instruments/MS/hiden/massoft_csv.py +0 -302
- dataerai_sdk-0.2.0b84/dataerai/metaextract/massspec/andi_ms.py +0 -392
- dataerai_sdk-0.2.0b84/dataerai/metaextract/spectroscopy/jcamp.py +0 -445
- dataerai_sdk-0.2.0b84/dataerai/metaextract/text_metadata.py +0 -1121
- dataerai_sdk-0.2.0b84/dataerai/metaextract/viz/metadata_schemas/__init__.py +0 -182
- dataerai_sdk-0.2.0b84/dataerai/metaextract/viz/metadata_schemas/_common.py +0 -147
- dataerai_sdk-0.2.0b84/dataerai/metaextract/viz/metadata_schemas/bio.py +0 -165
- dataerai_sdk-0.2.0b84/dataerai/metaextract/viz/metadata_schemas/chemistry.py +0 -90
- dataerai_sdk-0.2.0b84/dataerai/metaextract/viz/metadata_schemas/clinical.py +0 -111
- dataerai_sdk-0.2.0b84/dataerai/metaextract/viz/metadata_schemas/containers.py +0 -132
- dataerai_sdk-0.2.0b84/dataerai/metaextract/viz/metadata_schemas/generic.py +0 -131
- dataerai_sdk-0.2.0b84/dataerai/metaextract/viz/metadata_schemas/imaging.py +0 -196
- dataerai_sdk-0.2.0b84/dataerai/metaextract/viz/metadata_schemas/microscopy.py +0 -123
- dataerai_sdk-0.2.0b84/dataerai/metaextract/viz/metadata_schemas/spectroscopy.py +0 -70
- dataerai_sdk-0.2.0b84/dataerai/metaextract/viz/metadata_schemas/xrd.py +0 -106
- dataerai_sdk-0.2.0b84/dataerai/ml/serve/__init__.py +0 -26
- dataerai_sdk-0.2.0b84/dataerai/ml/serve/__main__.py +0 -49
- dataerai_sdk-0.2.0b84/dataerai/ml/serve/inputs.py +0 -99
- dataerai_sdk-0.2.0b84/dataerai/ml/serve/loader.py +0 -309
- dataerai_sdk-0.2.0b84/dataerai/ml/serve/runtime.py +0 -412
- dataerai_sdk-0.2.0b84/dataerai/nn/__init__.py +0 -22
- dataerai_sdk-0.2.0b84/dataerai/nn/_provenance.py +0 -191
- dataerai_sdk-0.2.0b84/dataerai/nn/pytorch.py +0 -631
- dataerai_sdk-0.2.0b84/dataerai/nn/system.py +0 -269
- dataerai_sdk-0.2.0b84/dataerai/nn/tensorflow.py +0 -567
- dataerai_sdk-0.2.0b84/dataerai/notebook.py +0 -284
- dataerai_sdk-0.2.0b84/dataerai/notebook_trace.py +0 -965
- dataerai_sdk-0.2.0b84/dataerai/pycroscopy/__init__.py +0 -13
- dataerai_sdk-0.2.0b84/dataerai/pycroscopy/feature_control.py +0 -120
- dataerai_sdk-0.2.0b84/dataerai/qick/__init__.py +0 -19
- dataerai_sdk-0.2.0b84/dataerai/qick/feature_control.py +0 -144
- dataerai_sdk-0.2.0b84/dataerai/rest/__init__.py +0 -40
- dataerai_sdk-0.2.0b84/dataerai/rest/_config.py +0 -95
- dataerai_sdk-0.2.0b84/dataerai/rest/auth.py +0 -433
- dataerai_sdk-0.2.0b84/dataerai/rest/client.py +0 -441
- dataerai_sdk-0.2.0b84/dataerai/runner/__init__.py +0 -37
- dataerai_sdk-0.2.0b84/dataerai/runner/agent.py +0 -648
- dataerai_sdk-0.2.0b84/dataerai/runner/cli.py +0 -395
- dataerai_sdk-0.2.0b84/dataerai/runner/config.py +0 -76
- dataerai_sdk-0.2.0b84/dataerai/runner/cpu_profile.py +0 -78
- dataerai_sdk-0.2.0b84/dataerai/runner/csv_extract.py +0 -137
- dataerai_sdk-0.2.0b84/dataerai/runner/device_auth.py +0 -208
- dataerai_sdk-0.2.0b84/dataerai/runner/handlers/_harness.py +0 -106
- dataerai_sdk-0.2.0b84/dataerai/runner/handlers/extract_csv.py +0 -31
- dataerai_sdk-0.2.0b84/dataerai/runner/handlers/infer.py +0 -19
- dataerai_sdk-0.2.0b84/dataerai/runner/handlers/serve.py +0 -29
- dataerai_sdk-0.2.0b84/dataerai/runner/image_ref.py +0 -76
- dataerai_sdk-0.2.0b84/dataerai/watermark.py +0 -741
- dataerai_sdk-0.2.0b84/dataerai_sdk.egg-info/PKG-INFO +0 -1630
- dataerai_sdk-0.2.0b84/tests/test_attribution_feature_control.py +0 -44
- dataerai_sdk-0.2.0b84/tests/test_client.py +0 -3408
- dataerai_sdk-0.2.0b84/tests/test_collection_sync.py +0 -498
- dataerai_sdk-0.2.0b84/tests/test_collections.py +0 -195
- dataerai_sdk-0.2.0b84/tests/test_daemon_startup_security.py +0 -77
- dataerai_sdk-0.2.0b84/tests/test_envelope.py +0 -234
- dataerai_sdk-0.2.0b84/tests/test_events.py +0 -783
- dataerai_sdk-0.2.0b84/tests/test_hello_client_security.py +0 -245
- dataerai_sdk-0.2.0b84/tests/test_hello_exchange_security.py +0 -330
- dataerai_sdk-0.2.0b84/tests/test_hello_key_location_security.py +0 -66
- dataerai_sdk-0.2.0b84/tests/test_hello_key_security.py +0 -218
- dataerai_sdk-0.2.0b84/tests/test_hello_proof_security.py +0 -101
- dataerai_sdk-0.2.0b84/tests/test_infer_handler.py +0 -101
- dataerai_sdk-0.2.0b84/tests/test_ipc_endpoint_security.py +0 -252
- dataerai_sdk-0.2.0b84/tests/test_nn_pytorch.py +0 -759
- dataerai_sdk-0.2.0b84/tests/test_nn_tensorflow.py +0 -323
- dataerai_sdk-0.2.0b84/tests/test_notebook.py +0 -248
- dataerai_sdk-0.2.0b84/tests/test_notebook_trace.py +0 -615
- dataerai_sdk-0.2.0b84/tests/test_notebook_trace_feature_control.py +0 -376
- dataerai_sdk-0.2.0b84/tests/test_provenance_tokens_feature_control.py +0 -32
- dataerai_sdk-0.2.0b84/tests/test_rest_auth.py +0 -391
- dataerai_sdk-0.2.0b84/tests/test_rest_client.py +0 -361
- dataerai_sdk-0.2.0b84/tests/test_serve_inputs.py +0 -57
- dataerai_sdk-0.2.0b84/tests/test_serve_loader.py +0 -243
- dataerai_sdk-0.2.0b84/tests/test_serve_loader_device.py +0 -161
- dataerai_sdk-0.2.0b84/tests/test_serve_packaging.py +0 -65
- dataerai_sdk-0.2.0b84/tests/test_serve_runtime.py +0 -267
- dataerai_sdk-0.2.0b84/tests/test_serve_runtime_hardening.py +0 -254
- dataerai_sdk-0.2.0b84/tests/test_serve_session.py +0 -151
- dataerai_sdk-0.2.0b84/tests/test_terms_gate.py +0 -218
- dataerai_sdk-0.2.0b84/tests/test_transport.py +0 -378
- dataerai_sdk-0.2.0b84/tests/test_tutorial_notebook.py +0 -734
- dataerai_sdk-0.2.0b84/tests/test_verifiable_credentials.py +0 -97
- dataerai_sdk-0.2.0b84/tests/test_watermark.py +0 -536
- dataerai_sdk-0.2.0b84/tests/test_windows_key_acl_security.py +0 -70
- dataerai_sdk-0.2.0b84/tests/test_windows_key_native_security.py +0 -335
- dataerai_sdk-0.2.0b84/tests/test_windows_key_refusal_boundary.py +0 -54
- dataerai_sdk-0.2.0b84/tests/test_windows_key_storage_security.py +0 -234
- dataerai_sdk-0.2.0b84/tests/test_windows_pipe_cancellation_security.py +0 -356
- dataerai_sdk-0.2.0b84/tests/test_windows_pipe_identity_security.py +0 -363
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/LICENSE +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/_agent.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/_framing.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/_timeparse.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/bambu/capture.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/bambu/journal.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/bambu/models.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/bio/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/bio/alignment.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/bio/fcs.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/bio/gff.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/bio/sequence.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/bio/vcf.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/checksum.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/compchem/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/compchem/molfile.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/compchem/qchem_output.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/compchem/structure.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/compchem/xyz.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/containers/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/containers/fits.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/containers/hdf5.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/containers/image.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/containers/matlab.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/containers/nexus.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/containers/numpy_array.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/containers/parquet.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/containers/tiff.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/containers/zarr_store.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/converter.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/converters/AFM/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/converters/AFM/oxfordAFM/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/converters/AFM/oxfordAFM/ibw.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/converters/RHEED/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/converters/RHEED/ksa/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/converters/RHEED/ksa/imm.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/converters/Xray/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/converters/Xray/panalytical/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/converters/Xray/panalytical/xrdml.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/converters/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/crystallography/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/crystallography/cif.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/crystallography/vasp.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/data_type.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/instruments/AFM/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/instruments/AFM/bandexcitation/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/instruments/AFM/bandexcitation/h5.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/instruments/AFM/bruker/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/instruments/AFM/oxfordAFM/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/instruments/EM/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/instruments/EM/dm/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/instruments/EM/dm/dm3.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/instruments/EM/dm/dm4.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/instruments/RHEED/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/instruments/RHEED/ksa/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/instruments/RHEED/ksa/imm.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/instruments/Xray/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/instruments/Xray/panalytical/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/instruments/Xray/panalytical/xrdml.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/instruments/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/massspec/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/massspec/imzml.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/massspec/mzml.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/massspec/mzxml.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/massspec/thermo_raw.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/medical/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/medical/dicom.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/medical/edf.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/medical/nifti.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/medical/nwb.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/microscopy/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/microscopy/czi.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/microscopy/leica_lif.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/microscopy/nd2.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/microscopy/olympus.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/spectroscopy/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/spectroscopy/bruker_opus.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/spectroscopy/renishaw_wdf.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/spectroscopy/thermo_spc.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/units.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/utils.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/viz/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/viz/instruments/Xray/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/viz/instruments/Xray/panalytical/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/viz/instruments/Xray/panalytical/xrd.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/viz/instruments/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/viz/instruments/oxford/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/viz/instruments/oxford/afms/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/viz/instruments/oxford/afms/afm.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/viz/instruments/oxford/afms/dart_pfm.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/viz/instruments/oxford/afms/single_frequency_pfm.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/viz/instruments/oxford/afms/vector_pfm.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/viz/instruments/oxford/afms/visualize.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/viz/layout.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/viz/maps.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/metaextract/viz/router.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/ai_ready_reader.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/attribution/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/attribution/calibration.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/attribution/codes.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/attribution/hooks.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/attribution/inference.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/attribution/sae.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/attribution/training.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/bench.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/cache.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/gpu.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/hls4ml.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/io.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/keras_dataset.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/loader.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/report.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/stream/__init__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/stream/_docs.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/stream/errors.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/stream/live.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/stream/reader.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/stream/session.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/stream/timeseries.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/stream/video.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/stream/writer.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/telemetry.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/train_reference.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/ml/zarr_dataset.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/runner/__main__.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/runner/handlers/bench.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/runner/handlers/stage.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/runner/handlers/train.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/runner/sigv4.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai/runner/state.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai_sdk.egg-info/dependency_links.txt +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai_sdk.egg-info/entry_points.txt +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/dataerai_sdk.egg-info/top_level.txt +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/setup.cfg +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_agent.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ai_ready_croissant_external.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ai_ready_croissant_external_mlc.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_attribution_inference.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_attribution_sae.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_attribution_training.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_framing.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_keras_hls4ml.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_lineage_client.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ml_access_ttl.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ml_ai_ready_croissant.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ml_ai_ready_reader.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ml_bench.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ml_cache.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ml_content_pinning.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ml_cred_lifecycle.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ml_distributed.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ml_gpu.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ml_gpu_path.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ml_io.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ml_loader.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ml_packaging.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ml_read_path.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ml_review_followups.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ml_review_followups_torch.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ml_sampler_correctness.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ml_staging.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_ml_telemetry.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_stream_core.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_stream_live.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_stream_timeseries.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_stream_video.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_timeparse.py +0 -0
- {dataerai_sdk-0.2.0b84 → dataerai_sdk-0.2.0.dev2}/tests/test_zarr_dataset.py +0 -0
|
@@ -0,0 +1,676 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: dataerai-sdk
|
|
3
|
+
Version: 0.2.0.dev2
|
|
4
|
+
Summary: Python SDK for the Dataerai transfer daemon
|
|
5
|
+
Author: Dataerai
|
|
6
|
+
License: DATAERAI PROPRIETARY SOFTWARE LICENSE AGREEMENT
|
|
7
|
+
|
|
8
|
+
Version 1.2
|
|
9
|
+
|
|
10
|
+
Copyright (c) 2026 Dataerai, Inc. All Rights Reserved.
|
|
11
|
+
|
|
12
|
+
================================================================================
|
|
13
|
+
NOTICE: THE SOFTWARE IS PROPRIETARY AND CONFIDENTIAL. NO RIGHTS ARE GRANTED
|
|
14
|
+
EXCEPT AS EXPRESSLY AND NARROWLY SET FORTH BELOW. ALL RIGHTS NOT EXPRESSLY
|
|
15
|
+
GRANTED ARE RESERVED BY DATAERAI, INC. THIS AGREEMENT APPLIES EQUALLY TO USE
|
|
16
|
+
BY HUMANS AND BY ARTIFICIAL INTELLIGENCE AGENTS (SEE SECTION 4). IF YOU DO NOT
|
|
17
|
+
AGREE TO EVERY TERM OF THIS AGREEMENT, YOU HAVE NO LICENSE AND MUST NOT ACCESS,
|
|
18
|
+
INSTALL, COPY, OR USE THE SOFTWARE IN ANY MANNER.
|
|
19
|
+
================================================================================
|
|
20
|
+
|
|
21
|
+
This Dataerai Proprietary Software License Agreement (this "Agreement") is a
|
|
22
|
+
binding legal agreement between Dataerai, Inc., a corporation organized under
|
|
23
|
+
the laws of the Commonwealth of Pennsylvania ("Licensor"), and the single
|
|
24
|
+
identified individual or legal entity that has been expressly authorized in
|
|
25
|
+
writing by Licensor to receive the Software ("Licensee"). By accessing,
|
|
26
|
+
installing, copying, or using the Software, or by clicking to accept, Licensee
|
|
27
|
+
agrees to be bound by this Agreement.
|
|
28
|
+
|
|
29
|
+
--------------------------------------------------------------------------------
|
|
30
|
+
1. DEFINITIONS
|
|
31
|
+
--------------------------------------------------------------------------------
|
|
32
|
+
|
|
33
|
+
1.1 "Software" means the Dataerai software package, in any and all forms,
|
|
34
|
+
including without limitation source code, object code, byte code, binaries,
|
|
35
|
+
scripts, schemas, configuration, models, weights, prompts, embeddings,
|
|
36
|
+
graph taxonomies, registries, metadata, libraries, application programming
|
|
37
|
+
interfaces, command-line tooling, and any associated materials, together
|
|
38
|
+
with all updates, upgrades, patches, modifications, enhancements, and
|
|
39
|
+
Documentation, whether delivered now or in the future.
|
|
40
|
+
|
|
41
|
+
1.2 "Documentation" means any technical or user materials, in any medium,
|
|
42
|
+
provided or made available by Licensor relating to the Software.
|
|
43
|
+
|
|
44
|
+
1.3 "Authorized Purpose" means solely the internal, non-production evaluation
|
|
45
|
+
of the Software by Licensee, on systems owned and controlled by Licensee,
|
|
46
|
+
strictly within the scope, seat count, term, and field of use expressly
|
|
47
|
+
stated in a written authorization signed by an officer of Licensor. Absent
|
|
48
|
+
such a written authorization, the Authorized Purpose is null and no use is
|
|
49
|
+
permitted.
|
|
50
|
+
|
|
51
|
+
1.4 "Confidential Information" means the Software and any non-public information
|
|
52
|
+
disclosed by Licensor, whether or not marked confidential. The Software is
|
|
53
|
+
deemed Confidential Information in its entirety.
|
|
54
|
+
|
|
55
|
+
--------------------------------------------------------------------------------
|
|
56
|
+
2. GRANT OF LICENSE
|
|
57
|
+
--------------------------------------------------------------------------------
|
|
58
|
+
|
|
59
|
+
2.1 Subject to Licensee's strict and continuous compliance with every term of
|
|
60
|
+
this Agreement, Licensor grants to Licensee a personal, non-exclusive,
|
|
61
|
+
non-transferable, non-sublicensable, non-assignable, revocable, royalty-
|
|
62
|
+
bearing-or-evaluation-only, and fully revocable license to use the Software
|
|
63
|
+
solely for the Authorized Purpose and solely during the Term.
|
|
64
|
+
|
|
65
|
+
2.2 The license granted in Section 2.1 is the entirety of the rights granted.
|
|
66
|
+
It conveys no right to copy (except a single archival copy as required for
|
|
67
|
+
backup, retaining all notices), no right to modify, no right to create
|
|
68
|
+
derivative works, no right to distribute, no right to sublicense, no right
|
|
69
|
+
to display or perform publicly, and no right to use in production, in a
|
|
70
|
+
service bureau, or on behalf of any third party.
|
|
71
|
+
|
|
72
|
+
2.3 No license, immunity, or other right is granted by implication, estoppel,
|
|
73
|
+
exhaustion, or otherwise. No patent, trademark, or other intellectual
|
|
74
|
+
property right is licensed except the limited use right in Section 2.1.
|
|
75
|
+
|
|
76
|
+
--------------------------------------------------------------------------------
|
|
77
|
+
3. RESTRICTIONS
|
|
78
|
+
--------------------------------------------------------------------------------
|
|
79
|
+
|
|
80
|
+
Licensee shall not, and shall not permit, enable, or assist any third party or
|
|
81
|
+
AI Agent (as defined in Section 4) to:
|
|
82
|
+
|
|
83
|
+
3.1 copy, reproduce, republish, upload, post, transmit, or otherwise duplicate
|
|
84
|
+
the Software except for the single archival copy permitted in Section 2.2;
|
|
85
|
+
|
|
86
|
+
3.2 modify, adapt, translate, port, fork, or create derivative works of the
|
|
87
|
+
Software, in whole or in part;
|
|
88
|
+
|
|
89
|
+
3.3 sell, resell, rent, lease, lend, distribute, transfer, disclose, host,
|
|
90
|
+
sublicense, time-share, or otherwise make the Software available to any
|
|
91
|
+
third party, whether for value or not;
|
|
92
|
+
|
|
93
|
+
3.4 reverse engineer, decompile, disassemble, decrypt, extract, or otherwise
|
|
94
|
+
attempt to derive or reconstruct the source code, architecture, algorithms,
|
|
95
|
+
model weights, training data, graph taxonomies, or trade secrets embodied
|
|
96
|
+
in the Software, except, and only to the minimum extent, that this
|
|
97
|
+
prohibition is unenforceable under applicable law and only after written
|
|
98
|
+
notice to Licensor;
|
|
99
|
+
|
|
100
|
+
3.5 use the Software to develop, train, benchmark, or improve any competing,
|
|
101
|
+
similar, or alternative product, model, or service;
|
|
102
|
+
|
|
103
|
+
3.6 conduct, publish, or disclose any benchmark, performance, security, or
|
|
104
|
+
comparative test or analysis of the Software without Licensor's prior
|
|
105
|
+
written consent;
|
|
106
|
+
|
|
107
|
+
3.7 remove, alter, obscure, or fail to reproduce any copyright, proprietary,
|
|
108
|
+
confidentiality, or other notice contained in or on the Software;
|
|
109
|
+
|
|
110
|
+
3.8 circumvent, disable, or interfere with any license-key, telemetry, usage-
|
|
111
|
+
metering, digital-rights-management, or access-control mechanism;
|
|
112
|
+
|
|
113
|
+
3.9 use the Software in excess of the authorized seat count, scope, field of
|
|
114
|
+
use, or Term, or for any purpose other than the Authorized Purpose; or
|
|
115
|
+
|
|
116
|
+
3.10 use the Software in violation of any applicable law, regulation, or third-
|
|
117
|
+
party right, including export control and sanctions laws.
|
|
118
|
+
|
|
119
|
+
--------------------------------------------------------------------------------
|
|
120
|
+
4. ARTIFICIAL INTELLIGENCE, AGENTS, AND AUTOMATED USE
|
|
121
|
+
--------------------------------------------------------------------------------
|
|
122
|
+
|
|
123
|
+
4.1 Definition. "AI Agent" means any artificial intelligence or machine-
|
|
124
|
+
learning system, model, or software — including any autonomous or semi-
|
|
125
|
+
autonomous agent, large language model, multi-agent system, robotic process
|
|
126
|
+
automation, bot, crawler, scraper, copilot, or other automated process —
|
|
127
|
+
that accesses, operates, invokes, queries, or acts upon the Software,
|
|
128
|
+
whether or not under direct human supervision, and whether operating on
|
|
129
|
+
Licensee's behalf, on Licensee's systems, or using Licensee's credentials,
|
|
130
|
+
tokens, API keys, or sessions.
|
|
131
|
+
|
|
132
|
+
4.2 Agents Bound by this Agreement. This Agreement applies in full to any access
|
|
133
|
+
to or use of the Software by, through, or on behalf of an AI Agent. Every
|
|
134
|
+
restriction, obligation, and prohibition that binds Licensee binds equally
|
|
135
|
+
any AI Agent that Licensee deploys, authorizes, instructs, integrates, or
|
|
136
|
+
permits to interact with the Software. An AI Agent is not a separate,
|
|
137
|
+
independent, or exempt user, and acquires no rights of its own under this
|
|
138
|
+
Agreement.
|
|
139
|
+
|
|
140
|
+
4.3 Full Responsibility for Agent Conduct. Licensee is fully and solely
|
|
141
|
+
responsible for all acts and omissions of any AI Agent acting on Licensee's
|
|
142
|
+
behalf, on Licensee's systems, or via Licensee's credentials, as if those
|
|
143
|
+
acts were Licensee's own. The autonomy of the AI Agent, the absence of human
|
|
144
|
+
supervision, or the absence of specific human intent is not a defense to any
|
|
145
|
+
breach. Licensee shall not use an AI Agent to do, attempt, or enable
|
|
146
|
+
anything that Licensee is itself prohibited from doing under this Agreement.
|
|
147
|
+
|
|
148
|
+
4.4 No Training, Ingestion, or Derivation. Licensee shall not, and shall not
|
|
149
|
+
permit any AI Agent or third party to, use the Software or any portion of it
|
|
150
|
+
— including its source code, object code, structure, schemas, graph
|
|
151
|
+
taxonomies, registries, metadata, model weights, prompts, embeddings,
|
|
152
|
+
Documentation, or Outputs — as input to, as training, fine-tuning, or
|
|
153
|
+
alignment data for, as a retrieval or context corpus for, or as a basis to
|
|
154
|
+
distill, replicate, or derive, any AI Agent, model, dataset, or competing
|
|
155
|
+
system.
|
|
156
|
+
|
|
157
|
+
4.5 No Automated Extraction. Licensee shall not use any AI Agent to scrape,
|
|
158
|
+
crawl, harvest, index, reverse engineer, or otherwise extract the Software,
|
|
159
|
+
its structure, its parameters, or its Outputs, including by means of
|
|
160
|
+
automated or adversarial querying intended to reconstruct or approximate the
|
|
161
|
+
Software's behavior, weights, taxonomies, or underlying data.
|
|
162
|
+
|
|
163
|
+
4.6 Outputs. "Outputs" means any data, content, predictions, classifications,
|
|
164
|
+
embeddings, analyses, graphs, or other results generated by the Software or
|
|
165
|
+
by any AI Agent through use of the Software. Outputs constitute Confidential
|
|
166
|
+
Information, are licensed (not assigned) to Licensee solely for the
|
|
167
|
+
Authorized Purpose, and remain subject to every restriction in this
|
|
168
|
+
Agreement. Licensee obtains no right to use Outputs to train, evaluate, or
|
|
169
|
+
improve any AI Agent, model, or competing system.
|
|
170
|
+
|
|
171
|
+
4.7 Disclosure of Agentic Use. Upon Licensor's request, Licensee shall disclose
|
|
172
|
+
whether, and the manner in which, any AI Agent has accessed or used the
|
|
173
|
+
Software, and shall cooperate with any audit under Section 8 directed at
|
|
174
|
+
such use.
|
|
175
|
+
|
|
176
|
+
--------------------------------------------------------------------------------
|
|
177
|
+
5. OWNERSHIP
|
|
178
|
+
--------------------------------------------------------------------------------
|
|
179
|
+
|
|
180
|
+
5.1 The Software is licensed, not sold. Licensor and its licensors retain all
|
|
181
|
+
right, title, and interest in and to the Software and all intellectual
|
|
182
|
+
property rights therein. Licensee acquires no ownership interest of any
|
|
183
|
+
kind. All feedback, suggestions, and ideas provided by Licensee — whether
|
|
184
|
+
authored by a human or generated by an AI Agent — are hereby assigned to
|
|
185
|
+
Licensor without restriction or compensation.
|
|
186
|
+
|
|
187
|
+
--------------------------------------------------------------------------------
|
|
188
|
+
6. CONFIDENTIALITY
|
|
189
|
+
--------------------------------------------------------------------------------
|
|
190
|
+
|
|
191
|
+
6.1 Licensee shall hold the Software and all Confidential Information in strict
|
|
192
|
+
confidence, shall not disclose it to any person or AI Agent other than
|
|
193
|
+
Licensee's employees with a need to know who are bound by written
|
|
194
|
+
obligations at least as protective as this Agreement, and shall use it
|
|
195
|
+
solely for the Authorized Purpose. Licensee shall protect it using no less
|
|
196
|
+
than the degree of care it uses for its own most sensitive information, and
|
|
197
|
+
in no event less than a reasonable degree of care. Licensee shall not input,
|
|
198
|
+
expose, or transmit the Software or Confidential Information to any third-
|
|
199
|
+
party AI Agent or service that would acquire rights in, or use for training,
|
|
200
|
+
the material so disclosed.
|
|
201
|
+
|
|
202
|
+
--------------------------------------------------------------------------------
|
|
203
|
+
7. TERM AND TERMINATION
|
|
204
|
+
--------------------------------------------------------------------------------
|
|
205
|
+
|
|
206
|
+
7.1 This Agreement and the license commence on the date Licensee first accesses
|
|
207
|
+
the Software and continue only for the period expressly authorized in
|
|
208
|
+
writing by Licensor (the "Term"). If no period is stated, the Term is
|
|
209
|
+
thirty (30) days.
|
|
210
|
+
|
|
211
|
+
7.2 Licensor may terminate or suspend this Agreement and the license at any
|
|
212
|
+
time, for any reason or no reason, with or without notice, in its sole
|
|
213
|
+
discretion. This license is revocable at will.
|
|
214
|
+
|
|
215
|
+
7.3 This Agreement terminates automatically and immediately upon any breach by
|
|
216
|
+
Licensee, without notice and without opportunity to cure.
|
|
217
|
+
|
|
218
|
+
7.4 Upon any expiration or termination, all rights granted cease immediately,
|
|
219
|
+
and Licensee shall, within five (5) days, cease all use, permanently delete
|
|
220
|
+
or destroy all copies of the Software (including the archival copy, all
|
|
221
|
+
Outputs, and all derivatives and extracts), purge the Software and Outputs
|
|
222
|
+
from any AI Agent context, cache, or store, and certify such destruction in
|
|
223
|
+
writing to Licensor upon request. Sections 1, 3, 4, 5, 6, 7.4, and 8
|
|
224
|
+
through 13 survive termination.
|
|
225
|
+
|
|
226
|
+
--------------------------------------------------------------------------------
|
|
227
|
+
8. AUDIT
|
|
228
|
+
--------------------------------------------------------------------------------
|
|
229
|
+
|
|
230
|
+
8.1 Licensor may, upon reasonable notice, audit Licensee's use of the Software,
|
|
231
|
+
including by inspecting records and systems and reviewing AI Agent logs and
|
|
232
|
+
access histories, to verify compliance. Licensee shall cooperate. Any
|
|
233
|
+
unauthorized use revealed by an audit constitutes a material breach.
|
|
234
|
+
|
|
235
|
+
--------------------------------------------------------------------------------
|
|
236
|
+
9. DISCLAIMER OF WARRANTIES
|
|
237
|
+
--------------------------------------------------------------------------------
|
|
238
|
+
|
|
239
|
+
9.1 THE SOFTWARE IS PROVIDED "AS IS" AND "AS AVAILABLE," WITH ALL FAULTS AND
|
|
240
|
+
WITHOUT WARRANTY OF ANY KIND. TO THE MAXIMUM EXTENT PERMITTED BY LAW,
|
|
241
|
+
LICENSOR DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS, IMPLIED, STATUTORY, OR
|
|
242
|
+
OTHERWISE, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR
|
|
243
|
+
A PARTICULAR PURPOSE, TITLE, ACCURACY, AND NON-INFRINGEMENT, AND ANY
|
|
244
|
+
WARRANTY ARISING FROM COURSE OF DEALING OR USAGE OF TRADE. LICENSOR DOES NOT
|
|
245
|
+
WARRANT THAT THE SOFTWARE WILL BE UNINTERRUPTED, ERROR-FREE, OR SECURE, OR
|
|
246
|
+
THAT ANY OUTPUT GENERATED BY THE SOFTWARE OR BY ANY AI AGENT WILL BE
|
|
247
|
+
ACCURATE, COMPLETE, OR FIT FOR ANY PURPOSE.
|
|
248
|
+
|
|
249
|
+
--------------------------------------------------------------------------------
|
|
250
|
+
10. LIMITATION OF LIABILITY
|
|
251
|
+
--------------------------------------------------------------------------------
|
|
252
|
+
|
|
253
|
+
10.1 TO THE MAXIMUM EXTENT PERMITTED BY LAW, LICENSOR SHALL NOT BE LIABLE FOR
|
|
254
|
+
ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE
|
|
255
|
+
DAMAGES, OR FOR ANY LOSS OF PROFITS, REVENUE, DATA, OR GOODWILL, ARISING
|
|
256
|
+
OUT OF OR RELATING TO THIS AGREEMENT, THE SOFTWARE, OR ANY ACTION TAKEN BY
|
|
257
|
+
AN AI AGENT, REGARDLESS OF THE THEORY OF LIABILITY AND EVEN IF ADVISED OF
|
|
258
|
+
THE POSSIBILITY OF SUCH DAMAGES.
|
|
259
|
+
|
|
260
|
+
10.2 LICENSOR'S TOTAL CUMULATIVE LIABILITY ARISING OUT OF OR RELATING TO THIS
|
|
261
|
+
AGREEMENT SHALL NOT EXCEED THE GREATER OF (A) THE FEES ACTUALLY PAID BY
|
|
262
|
+
LICENSEE TO LICENSOR FOR THE SOFTWARE IN THE THREE (3) MONTHS PRECEDING THE
|
|
263
|
+
CLAIM, OR (B) ONE HUNDRED U.S. DOLLARS (US$100).
|
|
264
|
+
|
|
265
|
+
--------------------------------------------------------------------------------
|
|
266
|
+
11. INDEMNIFICATION
|
|
267
|
+
--------------------------------------------------------------------------------
|
|
268
|
+
|
|
269
|
+
11.1 Licensee shall defend, indemnify, and hold harmless Licensor and its
|
|
270
|
+
officers, directors, employees, and agents from and against any and all
|
|
271
|
+
claims, damages, liabilities, costs, and expenses (including reasonable
|
|
272
|
+
attorneys' fees) arising out of or relating to Licensee's use of the
|
|
273
|
+
Software, any use of the Software by any AI Agent acting on Licensee's
|
|
274
|
+
behalf or via Licensee's credentials, or any breach of this Agreement.
|
|
275
|
+
|
|
276
|
+
--------------------------------------------------------------------------------
|
|
277
|
+
12. EXPORT, SANCTIONS, AND COMPLIANCE
|
|
278
|
+
--------------------------------------------------------------------------------
|
|
279
|
+
|
|
280
|
+
12.1 Licensee shall comply with all applicable export control, sanctions, and
|
|
281
|
+
anti-corruption laws and shall not export, re-export, or transfer the
|
|
282
|
+
Software to any prohibited destination, entity, or person, or use it for
|
|
283
|
+
any prohibited end use.
|
|
284
|
+
|
|
285
|
+
--------------------------------------------------------------------------------
|
|
286
|
+
13. GENERAL
|
|
287
|
+
--------------------------------------------------------------------------------
|
|
288
|
+
|
|
289
|
+
13.1 Governing Law; Venue. This Agreement is governed by the laws of the
|
|
290
|
+
Commonwealth of Pennsylvania, excluding its conflict-of-laws rules. The
|
|
291
|
+
parties submit to the exclusive jurisdiction of the state and federal
|
|
292
|
+
courts located in Pennsylvania.
|
|
293
|
+
|
|
294
|
+
13.2 Equitable Relief. Licensee acknowledges that any breach of Sections 2, 3,
|
|
295
|
+
4, or 6 would cause irreparable harm for which monetary damages are
|
|
296
|
+
inadequate, and that Licensor is entitled to injunctive relief without the
|
|
297
|
+
need to post bond.
|
|
298
|
+
|
|
299
|
+
13.3 Assignment. Licensee may not assign or transfer this Agreement or any
|
|
300
|
+
rights or obligations, by operation of law or otherwise, without
|
|
301
|
+
Licensor's prior written consent. Any attempted assignment in violation is
|
|
302
|
+
void. Licensor may freely assign.
|
|
303
|
+
|
|
304
|
+
13.4 No Waiver. No failure or delay by Licensor in exercising any right waives
|
|
305
|
+
it. Any waiver must be in a writing signed by Licensor.
|
|
306
|
+
|
|
307
|
+
13.5 Severability. If any provision is held unenforceable, it shall be modified
|
|
308
|
+
to the minimum extent necessary, and the remaining provisions remain in
|
|
309
|
+
full force.
|
|
310
|
+
|
|
311
|
+
13.6 Entire Agreement. Subject to Section 13.8, this Agreement, together
|
|
312
|
+
with any written authorization issued by Licensor, is the entire agreement
|
|
313
|
+
between the parties regarding the Software and supersedes all prior or
|
|
314
|
+
contemporaneous understandings. Any conflicting or additional terms
|
|
315
|
+
proposed by Licensee are rejected.
|
|
316
|
+
|
|
317
|
+
13.7 U.S. Government Rights. If Licensee is a U.S. Government entity, the
|
|
318
|
+
Software is "commercial computer software" and "commercial computer
|
|
319
|
+
software documentation," and any use, duplication, or disclosure is
|
|
320
|
+
subject to the restrictions of this Agreement to the extent permitted by
|
|
321
|
+
applicable Federal Acquisition Regulation and agency supplements.
|
|
322
|
+
|
|
323
|
+
13.8 Amendments; Updated Versions.
|
|
324
|
+
|
|
325
|
+
(a) Licensor may issue an amended or replacement version of this Agreement
|
|
326
|
+
(an "Updated Agreement"). To be effective as to Licensee, an Updated
|
|
327
|
+
Agreement must: (i) conspicuously identify itself as an updated version of
|
|
328
|
+
this Agreement and state its version number and effective date; (ii) be
|
|
329
|
+
provided to Licensee in full by a method reasonably calculated to give
|
|
330
|
+
Licensee notice; and (iii) be affirmatively accepted by Licensee through
|
|
331
|
+
a click-through acceptance, electronic signature, or other written
|
|
332
|
+
acceptance by a person authorized to bind Licensee. Licensor may condition
|
|
333
|
+
any renewal, extension, update, upgrade, or continued access to the
|
|
334
|
+
Software after the end of the then-current Term upon such acceptance.
|
|
335
|
+
|
|
336
|
+
(b) Upon Licensee's affirmative acceptance, the Updated Agreement
|
|
337
|
+
supersedes and replaces all prior versions of this Agreement between
|
|
338
|
+
Licensor and Licensee with respect to the Software, effective on the later
|
|
339
|
+
of the Updated Agreement's stated effective date or Licensee's acceptance
|
|
340
|
+
date. Unless the Updated Agreement expressly states otherwise, any then-
|
|
341
|
+
effective written authorization issued by Licensor remains in force only to
|
|
342
|
+
the extent it is consistent with the Updated Agreement.
|
|
343
|
+
|
|
344
|
+
(c) Until an Updated Agreement becomes effective under this Section 13.8,
|
|
345
|
+
the version of this Agreement previously accepted by Licensee remains
|
|
346
|
+
controlling, subject to Licensor's termination and suspension rights under
|
|
347
|
+
Section 7. Licensor shall retain a reasonably accessible record of each
|
|
348
|
+
version of this Agreement and the date on which Licensee accepted it.
|
|
349
|
+
|
|
350
|
+
================================================================================
|
|
351
|
+
For licensing inquiries, contact: legal@dataerai.com
|
|
352
|
+
Dataerai, Inc. — Center Valley, Pennsylvania, USA
|
|
353
|
+
================================================================================
|
|
354
|
+
|
|
355
|
+
Project-URL: Homepage, https://dataerai.com
|
|
356
|
+
Project-URL: Documentation, https://docs.dataerai.com
|
|
357
|
+
Project-URL: Source, https://github.com/dataerai/dataerai-toolkit
|
|
358
|
+
Keywords: dataerai,data-transfer,sdk,research-data
|
|
359
|
+
Classifier: License :: Other/Proprietary License
|
|
360
|
+
Classifier: Programming Language :: Python :: 3
|
|
361
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
362
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
363
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
364
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
365
|
+
Classifier: Intended Audience :: Science/Research
|
|
366
|
+
Classifier: Operating System :: OS Independent
|
|
367
|
+
Requires-Python: >=3.10
|
|
368
|
+
Description-Content-Type: text/markdown
|
|
369
|
+
License-File: LICENSE
|
|
370
|
+
Provides-Extra: dev
|
|
371
|
+
Requires-Dist: pytest>=8; extra == "dev"
|
|
372
|
+
Requires-Dist: pytest-mock>=3; extra == "dev"
|
|
373
|
+
Provides-Extra: bambu
|
|
374
|
+
Requires-Dist: imageio-ffmpeg>=0.6; extra == "bambu"
|
|
375
|
+
Provides-Extra: ml-io
|
|
376
|
+
Requires-Dist: zarr>=3.2; extra == "ml-io"
|
|
377
|
+
Requires-Dist: obstore>=0.5; extra == "ml-io"
|
|
378
|
+
Requires-Dist: numpy>=1.26; extra == "ml-io"
|
|
379
|
+
Requires-Dist: requests>=2.31; extra == "ml-io"
|
|
380
|
+
Requires-Dist: s3fs>=2024.0; extra == "ml-io"
|
|
381
|
+
Provides-Extra: ml
|
|
382
|
+
Requires-Dist: dataerai-sdk[ml-io]; extra == "ml"
|
|
383
|
+
Requires-Dist: torch>=2.4; extra == "ml"
|
|
384
|
+
Requires-Dist: torchdata>=0.9; extra == "ml"
|
|
385
|
+
Requires-Dist: safetensors>=0.4; extra == "ml"
|
|
386
|
+
Provides-Extra: croissant
|
|
387
|
+
Requires-Dist: mlcroissant>=1.0; extra == "croissant"
|
|
388
|
+
Provides-Extra: ml-gpu-cu12
|
|
389
|
+
Requires-Dist: dataerai-sdk[ml]; extra == "ml-gpu-cu12"
|
|
390
|
+
Requires-Dist: kvikio-cu12>=25.10; extra == "ml-gpu-cu12"
|
|
391
|
+
Requires-Dist: cupy-cuda12x>=13; extra == "ml-gpu-cu12"
|
|
392
|
+
Provides-Extra: ml-gpu
|
|
393
|
+
Requires-Dist: dataerai-sdk[ml-gpu-cu12]; extra == "ml-gpu"
|
|
394
|
+
Provides-Extra: ml-keras
|
|
395
|
+
Requires-Dist: dataerai-sdk[ml-io]; extra == "ml-keras"
|
|
396
|
+
Requires-Dist: numpy>=2; extra == "ml-keras"
|
|
397
|
+
Requires-Dist: keras>=3; extra == "ml-keras"
|
|
398
|
+
Requires-Dist: pillow>=10; extra == "ml-keras"
|
|
399
|
+
Provides-Extra: ml-hls4ml
|
|
400
|
+
Requires-Dist: dataerai-sdk[ml-keras]; extra == "ml-hls4ml"
|
|
401
|
+
Requires-Dist: hls4ml>=1.3; extra == "ml-hls4ml"
|
|
402
|
+
Provides-Extra: ml-stream
|
|
403
|
+
Requires-Dist: numpy>=2; extra == "ml-stream"
|
|
404
|
+
Requires-Dist: zarr>=3; extra == "ml-stream"
|
|
405
|
+
Provides-Extra: ml-stream-video
|
|
406
|
+
Requires-Dist: dataerai-sdk[ml-stream]; extra == "ml-stream-video"
|
|
407
|
+
Requires-Dist: av>=12; extra == "ml-stream-video"
|
|
408
|
+
Provides-Extra: ml-stream-train
|
|
409
|
+
Requires-Dist: dataerai-sdk[ml-stream]; extra == "ml-stream-train"
|
|
410
|
+
Requires-Dist: torch; extra == "ml-stream-train"
|
|
411
|
+
Provides-Extra: runner
|
|
412
|
+
Requires-Dist: requests>=2; extra == "runner"
|
|
413
|
+
Requires-Dist: nvidia-ml-py>=12.535; extra == "runner"
|
|
414
|
+
Provides-Extra: metaextract
|
|
415
|
+
Requires-Dist: numpy>=1.23; extra == "metaextract"
|
|
416
|
+
Requires-Dist: h5py>=3.7; extra == "metaextract"
|
|
417
|
+
Requires-Dist: igor2>=0.5; extra == "metaextract"
|
|
418
|
+
Requires-Dist: lxml>=4.9; extra == "metaextract"
|
|
419
|
+
Requires-Dist: hyperspy>=2.0; extra == "metaextract"
|
|
420
|
+
Provides-Extra: metaextract-converters
|
|
421
|
+
Requires-Dist: dataerai-sdk[metaextract]; extra == "metaextract-converters"
|
|
422
|
+
Requires-Dist: xarray>=0.20; extra == "metaextract-converters"
|
|
423
|
+
Requires-Dist: netCDF4>=1.6; extra == "metaextract-converters"
|
|
424
|
+
Provides-Extra: metaextract-viz
|
|
425
|
+
Requires-Dist: dataerai-sdk[metaextract]; extra == "metaextract-viz"
|
|
426
|
+
Requires-Dist: plotly>=5; extra == "metaextract-viz"
|
|
427
|
+
Requires-Dist: nbformat>=4.2; extra == "metaextract-viz"
|
|
428
|
+
Requires-Dist: matplotlib>=3.5; extra == "metaextract-viz"
|
|
429
|
+
Provides-Extra: metaextract-checksums
|
|
430
|
+
Requires-Dist: dataerai-sdk[metaextract]; extra == "metaextract-checksums"
|
|
431
|
+
Requires-Dist: blake3>=0.3; extra == "metaextract-checksums"
|
|
432
|
+
Provides-Extra: metaextract-utils
|
|
433
|
+
Requires-Dist: dataerai-sdk[metaextract]; extra == "metaextract-utils"
|
|
434
|
+
Requires-Dist: requests>=2.25; extra == "metaextract-utils"
|
|
435
|
+
Provides-Extra: metaextract-containers
|
|
436
|
+
Requires-Dist: dataerai-sdk[metaextract]; extra == "metaextract-containers"
|
|
437
|
+
Requires-Dist: netCDF4>=1.6; extra == "metaextract-containers"
|
|
438
|
+
Requires-Dist: scipy>=1.9; extra == "metaextract-containers"
|
|
439
|
+
Requires-Dist: pyarrow>=10; extra == "metaextract-containers"
|
|
440
|
+
Requires-Dist: tifffile>=2022.5; extra == "metaextract-containers"
|
|
441
|
+
Requires-Dist: pillow>=9; extra == "metaextract-containers"
|
|
442
|
+
Provides-Extra: metaextract-microscopy
|
|
443
|
+
Requires-Dist: dataerai-sdk[metaextract]; extra == "metaextract-microscopy"
|
|
444
|
+
Requires-Dist: nd2>=0.7; extra == "metaextract-microscopy"
|
|
445
|
+
Requires-Dist: czifile>=2019.7; extra == "metaextract-microscopy"
|
|
446
|
+
Requires-Dist: readlif>=0.6; extra == "metaextract-microscopy"
|
|
447
|
+
Requires-Dist: oiffile>=2021.6; extra == "metaextract-microscopy"
|
|
448
|
+
Provides-Extra: metaextract-medical
|
|
449
|
+
Requires-Dist: dataerai-sdk[metaextract]; extra == "metaextract-medical"
|
|
450
|
+
Requires-Dist: pydicom>=2.3; extra == "metaextract-medical"
|
|
451
|
+
Provides-Extra: metaextract-bio
|
|
452
|
+
Requires-Dist: dataerai-sdk[metaextract]; extra == "metaextract-bio"
|
|
453
|
+
Requires-Dist: pysam>=0.21; extra == "metaextract-bio"
|
|
454
|
+
Provides-Extra: metaextract-spectroscopy
|
|
455
|
+
Requires-Dist: dataerai-sdk[metaextract]; extra == "metaextract-spectroscopy"
|
|
456
|
+
Requires-Dist: brukeropus>=1.1; extra == "metaextract-spectroscopy"
|
|
457
|
+
Provides-Extra: metaextract-all
|
|
458
|
+
Requires-Dist: dataerai-sdk[metaextract-checksums,metaextract-converters,metaextract-utils,metaextract-viz]; extra == "metaextract-all"
|
|
459
|
+
Requires-Dist: dataerai-sdk[metaextract-containers,metaextract-medical,metaextract-microscopy]; extra == "metaextract-all"
|
|
460
|
+
Requires-Dist: dataerai-sdk[metaextract-bio,metaextract-spectroscopy]; extra == "metaextract-all"
|
|
461
|
+
Dynamic: license-file
|
|
462
|
+
|
|
463
|
+
# Dataerai Python SDK
|
|
464
|
+
|
|
465
|
+
Python client for the Dataerai transfer daemon.
|
|
466
|
+
Supports authenticated uploads, downloads, and metadata operations.
|
|
467
|
+
The daemon is started automatically if it is not already running.
|
|
468
|
+
|
|
469
|
+
## Requirements
|
|
470
|
+
|
|
471
|
+
- Python ≥ 3.10
|
|
472
|
+
- The `dataerai` binary must be installed and on `PATH` (or pass `binary_path` explicitly)
|
|
473
|
+
- The user must be logged in via `dataerai auth login` before calling `auth_status()` / `upload()` / `download()`
|
|
474
|
+
|
|
475
|
+
## Installation
|
|
476
|
+
|
|
477
|
+
```bash
|
|
478
|
+
pip install --pre "dataerai-sdk>=0.2.0b1,<0.3"
|
|
479
|
+
# or, from source:
|
|
480
|
+
pip install -e sdk/python/
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
Optional ML adapters are installed separately so the base SDK stays small:
|
|
484
|
+
|
|
485
|
+
```bash
|
|
486
|
+
pip install --pre "dataerai-sdk[ml]>=0.2.0b1,<0.3" # PyTorch Zarr datasets
|
|
487
|
+
pip install --pre "dataerai-sdk[ml-keras]>=0.2.0b1,<0.3" # Keras batches
|
|
488
|
+
pip install --pre "dataerai-sdk[ml-hls4ml]>=0.2.0b1,<0.3" # HLS4ML conversion
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
## Quick start
|
|
492
|
+
|
|
493
|
+
```python
|
|
494
|
+
from dataerai import DataeraiClient
|
|
495
|
+
|
|
496
|
+
with DataeraiClient(binary_path="/usr/local/bin/dataerai") as client:
|
|
497
|
+
# Check auth
|
|
498
|
+
status = client.auth_status()
|
|
499
|
+
print(f"Logged in as {status.user_email} ({status.user_id}), token expires {status.expires_at}")
|
|
500
|
+
if status.user_id is None:
|
|
501
|
+
raise RuntimeError("Upgrade the dataerai CLI to use user-owned uploads")
|
|
502
|
+
|
|
503
|
+
# Upload a user-owned file. owner_id is a UUID, not an email address.
|
|
504
|
+
result = client.upload(
|
|
505
|
+
"/path/to/data.csv",
|
|
506
|
+
title="My dataset",
|
|
507
|
+
owner_type="user",
|
|
508
|
+
owner_id=status.user_id,
|
|
509
|
+
record_type="dataset",
|
|
510
|
+
on_progress=lambda p: print(f" {p.percent:.0f}% {p.rate_mbps:.1f} MB/s"),
|
|
511
|
+
)
|
|
512
|
+
print(f"Uploaded asset_id={result.asset_id} content_id={result.content_id}")
|
|
513
|
+
|
|
514
|
+
# Download it back
|
|
515
|
+
dl = client.download(result.asset_id, dest_dir="/tmp/downloads")
|
|
516
|
+
for f in dl.files:
|
|
517
|
+
print(f" {f.local_path} ({f.size:,} bytes)")
|
|
518
|
+
|
|
519
|
+
# Read / update metadata
|
|
520
|
+
meta = client.get_metadata(result.asset_id)
|
|
521
|
+
updated = client.set_metadata(
|
|
522
|
+
result.asset_id,
|
|
523
|
+
title="My dataset v2",
|
|
524
|
+
record_type="analysis",
|
|
525
|
+
tags=["csv", "demo"],
|
|
526
|
+
)
|
|
527
|
+
|
|
528
|
+
# Link a derived result to the source asset that produced it
|
|
529
|
+
relationship = client.create_relationship(
|
|
530
|
+
result.asset_id,
|
|
531
|
+
"source-asset-id",
|
|
532
|
+
relationship_type="derived_from",
|
|
533
|
+
analysis_mode="non_destructive",
|
|
534
|
+
qualifiers={"tool": "pycroscopy"},
|
|
535
|
+
)
|
|
536
|
+
related_id = relationship.related_asset["id"] if relationship.related_asset else "source-asset-id"
|
|
537
|
+
print(f"Linked via {relationship.type} to {related_id}")
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
## API reference
|
|
541
|
+
|
|
542
|
+
### `DataeraiClient(*, socket_path, binary_path, auto_start, start_timeout_s, request_timeout_s)`
|
|
543
|
+
|
|
544
|
+
| Parameter | Default | Description |
|
|
545
|
+
|---|---|---|
|
|
546
|
+
| `socket_path` | `$DATAERAI_SOCKET` or `/run/user/<uid>/dataerai-transfer.sock` | Unix socket path |
|
|
547
|
+
| `binary_path` | `None` | Path to the `dataerai` binary (required for `auto_start`) |
|
|
548
|
+
| `auto_start` | `True` | Spawn the daemon if the socket does not exist |
|
|
549
|
+
| `start_timeout_s` | `10.0` | Seconds to wait for the daemon socket to appear |
|
|
550
|
+
| `request_timeout_s` | `30.0` | Per-request timeout in seconds |
|
|
551
|
+
|
|
552
|
+
Use as a context manager (`with DataeraiClient(...) as client:`) for automatic cleanup, or call `client.connect()` / `client.close()` manually.
|
|
553
|
+
|
|
554
|
+
### Methods
|
|
555
|
+
|
|
556
|
+
| Method | Returns | Description |
|
|
557
|
+
|---|---|---|
|
|
558
|
+
| `auth_status()` | `AuthStatus` | Logged-in user ID, email, and token expiry; `user_id` is `None` with older daemons |
|
|
559
|
+
| `create_project(name, *, description="")` | `Project` | Create a project (+ root collection, owner membership, default allocation); requires write scope |
|
|
560
|
+
| `upload(local_path, *, title, owner_type, owner_id, record_type=None, ...)` | `UploadResult` | Upload a file with an optional server-validated record type; blocks until complete |
|
|
561
|
+
| `download(asset_id, dest_dir, ...)` | `DownloadResult` | Download latest asset content; blocks until complete |
|
|
562
|
+
| `get_metadata(asset_id)` | `AssetMetadata` | Retrieve asset metadata |
|
|
563
|
+
| `set_metadata(asset_id, **fields)` | `AssetMetadata` | Update metadata fields, including `record_type` |
|
|
564
|
+
| `create_relationship(from_asset_id, to_asset_id, rel_type=None, *, relationship_type=None, ...)` | `Relationship` | Create a directed provenance link between two assets |
|
|
565
|
+
|
|
566
|
+
For headless notebooks, pass `record_type` to `upload()` or `set_metadata()`.
|
|
567
|
+
Both operations use the authenticated transfer daemon, so integrations do not
|
|
568
|
+
need to read the CLI credential store or expose access tokens to Python.
|
|
569
|
+
|
|
570
|
+
### ML adapters
|
|
571
|
+
|
|
572
|
+
The `dataerai.ml` package reads Dataerai-hosted Zarr image stores directly from
|
|
573
|
+
the short-lived `/zarr-access/` bundle. PyTorch users can keep using
|
|
574
|
+
`ZarrAssetDataset` / `ZarrOriginalsDataset`; Keras users get matching batch
|
|
575
|
+
datasets:
|
|
576
|
+
|
|
577
|
+
```python
|
|
578
|
+
from dataerai.ml import access
|
|
579
|
+
from dataerai.ml.keras_dataset import ZarrOriginalsSequence
|
|
580
|
+
|
|
581
|
+
creds = access.load_credentials()
|
|
582
|
+
train = ZarrOriginalsSequence(
|
|
583
|
+
creds,
|
|
584
|
+
asset_id="dataset-asset-id",
|
|
585
|
+
size=64,
|
|
586
|
+
batch_size=32,
|
|
587
|
+
shuffle=True,
|
|
588
|
+
label_mode="categorical",
|
|
589
|
+
)
|
|
590
|
+
|
|
591
|
+
model.fit(train, epochs=5)
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
For HLS4ML conversion, keep inputs in Keras' channels-last layout:
|
|
595
|
+
|
|
596
|
+
```python
|
|
597
|
+
from dataerai.ml.hls4ml import convert_keras_model
|
|
598
|
+
|
|
599
|
+
hls_model = convert_keras_model(
|
|
600
|
+
model,
|
|
601
|
+
output_dir="hls-project",
|
|
602
|
+
project_name="dataerai_model",
|
|
603
|
+
data=train, # writes input/output .npy testbench arrays
|
|
604
|
+
testbench_batches=2,
|
|
605
|
+
)
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
### `create_relationship()` arguments
|
|
609
|
+
|
|
610
|
+
Authors a directed provenance edge `from_asset_id` → `to_asset_id`. You need
|
|
611
|
+
write access to the source and read access to the target. `rel_type` is a
|
|
612
|
+
free-form verb describing the source's role, e.g. `"analysis_of"` or
|
|
613
|
+
`"acquired_with"`. Notebook integrations can pass the same value with the
|
|
614
|
+
keyword-only alias `relationship_type`.
|
|
615
|
+
|
|
616
|
+
| Argument | Type | Description |
|
|
617
|
+
|---|---|---|
|
|
618
|
+
| `from_asset_id` | `str` | Source (dependent) asset — the edge starts here (required) |
|
|
619
|
+
| `to_asset_id` | `str` | Target (origin) asset — the edge points here (required) |
|
|
620
|
+
| `rel_type` | `str \| None` | Free-form relationship type, ≤255 chars (required unless `relationship_type` is provided) |
|
|
621
|
+
| `relationship_type` | `str \| None` | Keyword-only alias for `rel_type` |
|
|
622
|
+
| `analysis_mode` | `str \| None` | `non_destructive`, `altering`, `destructive`, `in_situ`, `ex_situ`, `invasive`, `non_invasive` |
|
|
623
|
+
| `qualifier_note` | `str \| None` | Free-text note on the relationship |
|
|
624
|
+
| `qualifier_time` | `str \| None` | ISO-8601 timestamp |
|
|
625
|
+
| `qualifiers` | `dict \| None` | JSON-serializable extra qualifiers |
|
|
626
|
+
|
|
627
|
+
```python
|
|
628
|
+
# Link a processed result back to the raw data it came from.
|
|
629
|
+
client.create_relationship(analysis.asset_id, raw.asset_id, "analysis_of",
|
|
630
|
+
analysis_mode="non_destructive")
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
### `upload()` keyword arguments
|
|
634
|
+
|
|
635
|
+
| Argument | Type | Description |
|
|
636
|
+
|---|---|---|
|
|
637
|
+
| `title` | `str` | Asset title (required) |
|
|
638
|
+
| `owner_type` | `str` | `"project"` or `"user"` (required) |
|
|
639
|
+
| `owner_id` | `str` | Owner entity ID (required) |
|
|
640
|
+
| `description` | `str \| None` | Free-text description |
|
|
641
|
+
| `alias` | `str \| None` | Short identifier |
|
|
642
|
+
| `tags` | `list[str] \| None` | Tag list |
|
|
643
|
+
| `metadata` | `dict \| None` | Arbitrary key-value metadata |
|
|
644
|
+
| `collection_id` | `str \| None` | Collection to add the asset to |
|
|
645
|
+
| `chunk_size_mb` | `int \| None` | Override default 64 MiB chunk size |
|
|
646
|
+
| `on_progress` | `Callable[[ProgressEvent], None] \| None` | Progress callback |
|
|
647
|
+
| `transfer_timeout_s` | `float` | Max seconds to wait for completion (default 3600) |
|
|
648
|
+
|
|
649
|
+
### Progress events
|
|
650
|
+
|
|
651
|
+
```python
|
|
652
|
+
@dataclass
|
|
653
|
+
class ProgressEvent:
|
|
654
|
+
transfer_id: str
|
|
655
|
+
bytes_done: int
|
|
656
|
+
bytes_total: int
|
|
657
|
+
chunk_index: int
|
|
658
|
+
chunk_count: int
|
|
659
|
+
rate_bps: float
|
|
660
|
+
file_index: int
|
|
661
|
+
file_name: str
|
|
662
|
+
|
|
663
|
+
@property
|
|
664
|
+
def percent(self) -> float: ... # 0–100
|
|
665
|
+
|
|
666
|
+
@property
|
|
667
|
+
def rate_mbps(self) -> float: ...
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
### Error types
|
|
671
|
+
|
|
672
|
+
| Exception | When raised |
|
|
673
|
+
|---|---|
|
|
674
|
+
| `DaemonError(code, message)` | Daemon returned a coded error (see `code` attribute) |
|
|
675
|
+
| `DaemonTimeoutError` | Request or transfer exceeded the configured timeout |
|
|
676
|
+
| `ConnectionError` | Daemon disconnected unexpectedly |
|