tiled 0.1.0__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.
- tiled-0.1.0/.codecov.yml +10 -0
- tiled-0.1.0/.coveragerc +14 -0
- tiled-0.1.0/.devcontainer/devcontainer.json +31 -0
- tiled-0.1.0/.flake8 +13 -0
- tiled-0.1.0/.git_archival.txt +4 -0
- tiled-0.1.0/.gitattributes +3 -0
- tiled-0.1.0/.github/pull_request_template.md +3 -0
- tiled-0.1.0/.github/workflows/ci.yml +161 -0
- tiled-0.1.0/.github/workflows/docs.yml +28 -0
- tiled-0.1.0/.github/workflows/publish-docs.yml +52 -0
- tiled-0.1.0/.github/workflows/publish-image.yml +83 -0
- tiled-0.1.0/.github/workflows/publish-pypi.yml +45 -0
- tiled-0.1.0/.gitignore +87 -0
- tiled-0.1.0/.isort.cfg +2 -0
- tiled-0.1.0/.mypy.ini +35 -0
- tiled-0.1.0/.pre-commit-config.yaml +37 -0
- tiled-0.1.0/.vscode/launch.json +28 -0
- tiled-0.1.0/CHANGELOG.md +752 -0
- tiled-0.1.0/Containerfile +124 -0
- tiled-0.1.0/LICENSE +29 -0
- tiled-0.1.0/PKG-INFO +393 -0
- tiled-0.1.0/README.md +164 -0
- tiled-0.1.0/asv.conf.json +171 -0
- tiled-0.1.0/benchmarks/__init__.py +0 -0
- tiled-0.1.0/benchmarks/benchmarks.py +67 -0
- tiled-0.1.0/canary-validator.yml +61 -0
- tiled-0.1.0/continuous_integration/docker-configs/ldap-docker-compose.yml +19 -0
- tiled-0.1.0/continuous_integration/scripts/download_sqlite_data.sh +4 -0
- tiled-0.1.0/continuous_integration/scripts/start_LDAP.sh +7 -0
- tiled-0.1.0/continuous_integration/scripts/start_postgres.sh +8 -0
- tiled-0.1.0/continuous_integration/scripts/start_redis.sh +5 -0
- tiled-0.1.0/docker-compose.yml +57 -0
- tiled-0.1.0/docs/Makefile +20 -0
- tiled-0.1.0/docs/make.bat +36 -0
- tiled-0.1.0/docs/source/_static/.placeholder +0 -0
- tiled-0.1.0/docs/source/_static/grafana-screenshot.png +0 -0
- tiled-0.1.0/docs/source/_static/orcid-authorize.png +0 -0
- tiled-0.1.0/docs/source/_static/orcid-login.png +0 -0
- tiled-0.1.0/docs/source/conf.py +294 -0
- tiled-0.1.0/docs/source/explanations/access-control.md +77 -0
- tiled-0.1.0/docs/source/explanations/architecture.md +129 -0
- tiled-0.1.0/docs/source/explanations/caching.md +82 -0
- tiled-0.1.0/docs/source/explanations/catalog.md +337 -0
- tiled-0.1.0/docs/source/explanations/compression.md +170 -0
- tiled-0.1.0/docs/source/explanations/faq.md +37 -0
- tiled-0.1.0/docs/source/explanations/lineage.md +118 -0
- tiled-0.1.0/docs/source/explanations/metadata.md +57 -0
- tiled-0.1.0/docs/source/explanations/roadmap.md +18 -0
- tiled-0.1.0/docs/source/explanations/security.md +333 -0
- tiled-0.1.0/docs/source/explanations/specialized-formats.md +280 -0
- tiled-0.1.0/docs/source/explanations/standards.md +15 -0
- tiled-0.1.0/docs/source/explanations/storage-database.md +163 -0
- tiled-0.1.0/docs/source/explanations/structures.md +591 -0
- tiled-0.1.0/docs/source/how-to/api-keys.md +224 -0
- tiled-0.1.0/docs/source/how-to/authentication.md +158 -0
- tiled-0.1.0/docs/source/how-to/client-logger.md +111 -0
- tiled-0.1.0/docs/source/how-to/configuration.md +76 -0
- tiled-0.1.0/docs/source/how-to/custom-clients.md +192 -0
- tiled-0.1.0/docs/source/how-to/custom-export-formats.md +237 -0
- tiled-0.1.0/docs/source/how-to/direct-client.md +99 -0
- tiled-0.1.0/docs/source/how-to/docker.md +234 -0
- tiled-0.1.0/docs/source/how-to/helm.md +98 -0
- tiled-0.1.0/docs/source/how-to/metrics.md +64 -0
- tiled-0.1.0/docs/source/how-to/profiles.md +199 -0
- tiled-0.1.0/docs/source/how-to/read-custom-formats.md +274 -0
- tiled-0.1.0/docs/source/how-to/register.md +114 -0
- tiled-0.1.0/docs/source/how-to/retries.md +37 -0
- tiled-0.1.0/docs/source/how-to/tiled-authn-database.md +54 -0
- tiled-0.1.0/docs/source/index.md +74 -0
- tiled-0.1.0/docs/source/reference/authentication.md +279 -0
- tiled-0.1.0/docs/source/reference/client-profiles-header.txt +16 -0
- tiled-0.1.0/docs/source/reference/commandline.md +11 -0
- tiled-0.1.0/docs/source/reference/http-api-overview.md +56 -0
- tiled-0.1.0/docs/source/reference/min-versions.rst +28 -0
- tiled-0.1.0/docs/source/reference/python-client.md +320 -0
- tiled-0.1.0/docs/source/reference/queries.md +129 -0
- tiled-0.1.0/docs/source/reference/release-history.rst +5 -0
- tiled-0.1.0/docs/source/reference/scopes.md +41 -0
- tiled-0.1.0/docs/source/reference/service-configuration-header.txt +30 -0
- tiled-0.1.0/docs/source/reference/service.md +141 -0
- tiled-0.1.0/docs/source/tutorials/export.md +161 -0
- tiled-0.1.0/docs/source/tutorials/installation.rst +84 -0
- tiled-0.1.0/docs/source/tutorials/login.md +86 -0
- tiled-0.1.0/docs/source/tutorials/navigation.md +215 -0
- tiled-0.1.0/docs/source/tutorials/plotly-integration.md +30 -0
- tiled-0.1.0/docs/source/tutorials/search.md +70 -0
- tiled-0.1.0/docs/source/tutorials/serving-files.md +94 -0
- tiled-0.1.0/docs/source/tutorials/simple-server.md +29 -0
- tiled-0.1.0/docs/source/tutorials/slicing.md +233 -0
- tiled-0.1.0/docs/source/tutorials/streaming.md +174 -0
- tiled-0.1.0/docs/source/tutorials/writing.md +117 -0
- tiled-0.1.0/docs/source/tutorials/zarr-integration.md +101 -0
- tiled-0.1.0/example_configs/access_tags/compile_tags.py +30 -0
- tiled-0.1.0/example_configs/access_tags/tag_definitions.yml +36 -0
- tiled-0.1.0/example_configs/catalog/create_catalog.py +34 -0
- tiled-0.1.0/example_configs/custom_export_formats/README.md +6 -0
- tiled-0.1.0/example_configs/custom_export_formats/custom_exporters.py +20 -0
- tiled-0.1.0/example_configs/external_service/README.md +1 -0
- tiled-0.1.0/example_configs/external_service/custom.py +94 -0
- tiled-0.1.0/example_configs/google_auth.yml +17 -0
- tiled-0.1.0/example_configs/multiple_providers.yml +26 -0
- tiled-0.1.0/example_configs/orcid_auth.yml +17 -0
- tiled-0.1.0/example_configs/saml.yml +30 -0
- tiled-0.1.0/example_configs/simple_oidc/README.md +47 -0
- tiled-0.1.0/example_configs/simple_oidc/oidc_provider_config.json +27 -0
- tiled-0.1.0/example_configs/simple_oidc/users.json +11 -0
- tiled-0.1.0/example_configs/single_catalog_single_user.yml +19 -0
- tiled-0.1.0/example_configs/small_single_user_demo.yml +5 -0
- tiled-0.1.0/example_configs/toy_authentication.yml +35 -0
- tiled-0.1.0/example_log_config.yml +41 -0
- tiled-0.1.0/hatch_build.py +67 -0
- tiled-0.1.0/helm/tiled/.helmignore +23 -0
- tiled-0.1.0/helm/tiled/Chart.yaml +19 -0
- tiled-0.1.0/helm/tiled/templates/NOTES.txt +22 -0
- tiled-0.1.0/helm/tiled/templates/_helpers.tpl +62 -0
- tiled-0.1.0/helm/tiled/templates/configmap.yaml +7 -0
- tiled-0.1.0/helm/tiled/templates/deployment.yaml +77 -0
- tiled-0.1.0/helm/tiled/templates/hpa.yaml +32 -0
- tiled-0.1.0/helm/tiled/templates/ingress.yaml +43 -0
- tiled-0.1.0/helm/tiled/templates/service.yaml +15 -0
- tiled-0.1.0/helm/tiled/templates/serviceaccount.yaml +13 -0
- tiled-0.1.0/helm/tiled/templates/tests/test-connection.yaml +15 -0
- tiled-0.1.0/helm/tiled/values.yaml +140 -0
- tiled-0.1.0/locust/README.md +107 -0
- tiled-0.1.0/locust/reader.py +253 -0
- tiled-0.1.0/locust/streaming.py +238 -0
- tiled-0.1.0/monitoring_example/README.md +19 -0
- tiled-0.1.0/monitoring_example/grafana/dashboards/dashboard.json +217 -0
- tiled-0.1.0/monitoring_example/grafana/main.yml +12 -0
- tiled-0.1.0/monitoring_example/grafana/provisioning/datasources/prometheus.yml +6 -0
- tiled-0.1.0/monitoring_example/prometheus/prometheus.yml +13 -0
- tiled-0.1.0/pixi.toml +150 -0
- tiled-0.1.0/pyproject.toml +332 -0
- tiled-0.1.0/pytest.ini +7 -0
- tiled-0.1.0/scripts/json_indexes.py +49 -0
- tiled-0.1.0/share/tiled/.identifying_file_72628d5f953b4229b58c9f1f8f6a9a09 +2 -0
- tiled-0.1.0/share/tiled/static/default_ui_settings.yml +59 -0
- tiled-0.1.0/share/tiled/static/favicon.ico +0 -0
- tiled-0.1.0/share/tiled/templates/device_code_failure.html +9 -0
- tiled-0.1.0/share/tiled/templates/device_code_form.html +25 -0
- tiled-0.1.0/share/tiled/templates/device_code_success.html +9 -0
- tiled-0.1.0/share/tiled/templates/index.html +66 -0
- tiled-0.1.0/share/tiled/templates/page.html +19 -0
- tiled-0.1.0/share/tiled/ui/assets/Checkbox-vyYUPBbX.js +1 -0
- tiled-0.1.0/share/tiled/ui/assets/DataGrid-DyFuY0s8.js +183 -0
- tiled-0.1.0/share/tiled/ui/assets/FormControlLabel-Ckn-i3Sp.js +1 -0
- tiled-0.1.0/share/tiled/ui/assets/FormGroup-y9-iIeyA.js +1 -0
- tiled-0.1.0/share/tiled/ui/assets/Input-BJwdycW3.js +2 -0
- tiled-0.1.0/share/tiled/ui/assets/Stack-Cwu0vGSf.js +1 -0
- tiled-0.1.0/share/tiled/ui/assets/Tooltip-DDkR3tcv.js +1 -0
- tiled-0.1.0/share/tiled/ui/assets/array-1d-B1Aq4rcu.js +69 -0
- tiled-0.1.0/share/tiled/ui/assets/array-nd-BY-MA2EH.js +1 -0
- tiled-0.1.0/share/tiled/ui/assets/browse-Ypk-yEjt.js +7 -0
- tiled-0.1.0/share/tiled/ui/assets/choose-partition-tmVN7Yw-.js +1 -0
- tiled-0.1.0/share/tiled/ui/assets/default-highlight-BScOjbTS.js +17 -0
- tiled-0.1.0/share/tiled/ui/assets/download-array-1GiW5t1M.js +1 -0
- tiled-0.1.0/share/tiled/ui/assets/download-core-CRepuej1.js +1 -0
- tiled-0.1.0/share/tiled/ui/assets/download-node-_Cs0Wq6z.js +1 -0
- tiled-0.1.0/share/tiled/ui/assets/download-table-CYWC9Dxd.js +1 -0
- tiled-0.1.0/share/tiled/ui/assets/index-Bjnup-cL.css +1 -0
- tiled-0.1.0/share/tiled/ui/assets/index-G4l7qcMm.js +214 -0
- tiled-0.1.0/share/tiled/ui/assets/index.esm-Dfo1uwtt.js +1 -0
- tiled-0.1.0/share/tiled/ui/assets/json-viewer-D8zlNXsw.js +1 -0
- tiled-0.1.0/share/tiled/ui/assets/metadata-view-BUHq6DoX.js +32 -0
- tiled-0.1.0/share/tiled/ui/assets/overview-array-BTlLTAOt.js +2 -0
- tiled-0.1.0/share/tiled/ui/assets/overview-generic-node-ysT48OV9.js +1 -0
- tiled-0.1.0/share/tiled/ui/assets/overview-table-Dx2_Un16.js +2 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-all-300-normal-lRRuIfal.woff +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-all-400-normal-BZJ9QssU.woff +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-all-500-normal-B0NPRryQ.woff +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-all-700-normal-BfaNsj0k.woff +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-cyrillic-300-normal-D6mjswgs.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-cyrillic-400-normal-DVDTZtmW.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-cyrillic-500-normal-DAkZhMOh.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-cyrillic-700-normal-B5ZBKWCH.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-cyrillic-ext-300-normal-TzZWIuiO.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-cyrillic-ext-400-normal-DORK9bGA.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-cyrillic-ext-500-normal-G9W8hgzQ.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-cyrillic-ext-700-normal-CsrCEJIc.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-greek-300-normal-ndiuWqED.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-greek-400-normal-BRWHCUYo.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-greek-500-normal-CpESfwfG.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-greek-700-normal-Cc2Tq8FV.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-latin-300-normal-ThHrQhYb.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-latin-400-normal-mTIRXP6Y.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-latin-500-normal-Dxdx3aXO.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-latin-700-normal-CeM5gOv8.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-latin-ext-300-normal-DEsNdRC-.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-latin-ext-400-normal-4bLplyDh.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-latin-ext-500-normal-BWKy6SgX.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-latin-ext-700-normal-BYGCo3Go.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-vietnamese-300-normal-CnPrVvBs.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-vietnamese-400-normal-kCRe3VZk.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-vietnamese-500-normal-CcijQRVW.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/roboto-vietnamese-700-normal-SekShQfT.woff2 +0 -0
- tiled-0.1.0/share/tiled/ui/assets/toPropertyKey-DCwh5dYN.js +1 -0
- tiled-0.1.0/share/tiled/ui/favicon.ico +0 -0
- tiled-0.1.0/share/tiled/ui/index.html +24 -0
- tiled-0.1.0/share/tiled/ui/manifest.json +15 -0
- tiled-0.1.0/share/tiled/ui/robots.txt +3 -0
- tiled-0.1.0/tiled/__init__.py +6 -0
- tiled-0.1.0/tiled/__main__.py +3 -0
- tiled-0.1.0/tiled/_tests/__init__.py +0 -0
- tiled-0.1.0/tiled/_tests/adapters/__init__.py +0 -0
- tiled-0.1.0/tiled/_tests/adapters/test_arrow.py +90 -0
- tiled-0.1.0/tiled/_tests/adapters/test_sql.py +799 -0
- tiled-0.1.0/tiled/_tests/adapters/test_sql_arrays.py +256 -0
- tiled-0.1.0/tiled/_tests/adapters/test_sql_types.py +269 -0
- tiled-0.1.0/tiled/_tests/conftest.py +309 -0
- tiled-0.1.0/tiled/_tests/sql/__init__.py +0 -0
- tiled-0.1.0/tiled/_tests/sql/before_creating_fts5_virtual_table.sql +111 -0
- tiled-0.1.0/tiled/_tests/test_access_control.py +1049 -0
- tiled-0.1.0/tiled/_tests/test_allow_origins.py +37 -0
- tiled-0.1.0/tiled/_tests/test_array.py +231 -0
- tiled-0.1.0/tiled/_tests/test_asset_access.py +126 -0
- tiled-0.1.0/tiled/_tests/test_authentication.py +702 -0
- tiled-0.1.0/tiled/_tests/test_authenticators.py +51 -0
- tiled-0.1.0/tiled/_tests/test_awkward.py +253 -0
- tiled-0.1.0/tiled/_tests/test_caches.py +98 -0
- tiled-0.1.0/tiled/_tests/test_catalog.py +955 -0
- tiled-0.1.0/tiled/_tests/test_cli.py +125 -0
- tiled-0.1.0/tiled/_tests/test_client.py +165 -0
- tiled-0.1.0/tiled/_tests/test_client_cache.py +225 -0
- tiled-0.1.0/tiled/_tests/test_client_smoke.py +46 -0
- tiled-0.1.0/tiled/_tests/test_composite.py +671 -0
- tiled-0.1.0/tiled/_tests/test_compression.py +51 -0
- tiled-0.1.0/tiled/_tests/test_config.py +125 -0
- tiled-0.1.0/tiled/_tests/test_configs/config_missing_api_key.yml +9 -0
- tiled-0.1.0/tiled/_tests/test_configs/config_missing_secret_keys.yml +16 -0
- tiled-0.1.0/tiled/_tests/test_configs/config_missing_secret_keys_public.yml +19 -0
- tiled-0.1.0/tiled/_tests/test_configs/config_public_no_authenticator.yml +10 -0
- tiled-0.1.0/tiled/_tests/test_configs/config_with_api_key.yml +10 -0
- tiled-0.1.0/tiled/_tests/test_configs/config_with_secret_keys.yml +19 -0
- tiled-0.1.0/tiled/_tests/test_container_fields.py +150 -0
- tiled-0.1.0/tiled/_tests/test_container_files.py +85 -0
- tiled-0.1.0/tiled/_tests/test_csv_adapter.py +141 -0
- tiled-0.1.0/tiled/_tests/test_custom_format.py +93 -0
- tiled-0.1.0/tiled/_tests/test_dataframe.py +235 -0
- tiled-0.1.0/tiled/_tests/test_decoders.py +45 -0
- tiled-0.1.0/tiled/_tests/test_directory_walker.py +386 -0
- tiled-0.1.0/tiled/_tests/test_distinct.py +142 -0
- tiled-0.1.0/tiled/_tests/test_export.py +158 -0
- tiled-0.1.0/tiled/_tests/test_hdf5.py +453 -0
- tiled-0.1.0/tiled/_tests/test_history.py +22 -0
- tiled-0.1.0/tiled/_tests/test_import_object.py +36 -0
- tiled-0.1.0/tiled/_tests/test_indexers.py +87 -0
- tiled-0.1.0/tiled/_tests/test_inlined_contents.py +133 -0
- tiled-0.1.0/tiled/_tests/test_jpeg.py +189 -0
- tiled-0.1.0/tiled/_tests/test_json.py +35 -0
- tiled-0.1.0/tiled/_tests/test_metrics.py +66 -0
- tiled-0.1.0/tiled/_tests/test_mount_node.py +109 -0
- tiled-0.1.0/tiled/_tests/test_no_heavy_imports.py +20 -0
- tiled-0.1.0/tiled/_tests/test_npy.py +183 -0
- tiled-0.1.0/tiled/_tests/test_openapi.py +50 -0
- tiled-0.1.0/tiled/_tests/test_pagination.py +210 -0
- tiled-0.1.0/tiled/_tests/test_pickle.py +63 -0
- tiled-0.1.0/tiled/_tests/test_profiles.py +23 -0
- tiled-0.1.0/tiled/_tests/test_protocols.py +447 -0
- tiled-0.1.0/tiled/_tests/test_queries.py +382 -0
- tiled-0.1.0/tiled/_tests/test_register.py +9 -0
- tiled-0.1.0/tiled/_tests/test_resource_cache.py +45 -0
- tiled-0.1.0/tiled/_tests/test_routes.py +14 -0
- tiled-0.1.0/tiled/_tests/test_scaled_config_option.py +35 -0
- tiled-0.1.0/tiled/_tests/test_search.py +97 -0
- tiled-0.1.0/tiled/_tests/test_select_metadata.py +38 -0
- tiled-0.1.0/tiled/_tests/test_sentinel.py +13 -0
- tiled-0.1.0/tiled/_tests/test_server.py +146 -0
- tiled-0.1.0/tiled/_tests/test_simple_server.py +90 -0
- tiled-0.1.0/tiled/_tests/test_size_limit.py +85 -0
- tiled-0.1.0/tiled/_tests/test_slicer.py +227 -0
- tiled-0.1.0/tiled/_tests/test_sort.py +106 -0
- tiled-0.1.0/tiled/_tests/test_sparse.py +71 -0
- tiled-0.1.0/tiled/_tests/test_specs.py +25 -0
- tiled-0.1.0/tiled/_tests/test_structured_array.py +39 -0
- tiled-0.1.0/tiled/_tests/test_subscription.py +250 -0
- tiled-0.1.0/tiled/_tests/test_sync.py +160 -0
- tiled-0.1.0/tiled/_tests/test_tiff.py +215 -0
- tiled-0.1.0/tiled/_tests/test_tokenize.py +13 -0
- tiled-0.1.0/tiled/_tests/test_utils.py +367 -0
- tiled-0.1.0/tiled/_tests/test_validation.py +135 -0
- tiled-0.1.0/tiled/_tests/test_websockets.py +301 -0
- tiled-0.1.0/tiled/_tests/test_writing.py +805 -0
- tiled-0.1.0/tiled/_tests/test_xarray.py +201 -0
- tiled-0.1.0/tiled/_tests/test_zarr.py +342 -0
- tiled-0.1.0/tiled/_tests/utils.py +152 -0
- tiled-0.1.0/tiled/_version.py +34 -0
- tiled-0.1.0/tiled/access_control/__init__.py +0 -0
- tiled-0.1.0/tiled/access_control/access_policies.py +362 -0
- tiled-0.1.0/tiled/access_control/access_tags.py +536 -0
- tiled-0.1.0/tiled/access_control/scopes.py +36 -0
- tiled-0.1.0/tiled/adapters/__init__.py +0 -0
- tiled-0.1.0/tiled/adapters/array.py +195 -0
- tiled-0.1.0/tiled/adapters/arrow.py +328 -0
- tiled-0.1.0/tiled/adapters/awkward.py +123 -0
- tiled-0.1.0/tiled/adapters/awkward_buffers.py +84 -0
- tiled-0.1.0/tiled/adapters/awkward_directory_container.py +78 -0
- tiled-0.1.0/tiled/adapters/csv.py +369 -0
- tiled-0.1.0/tiled/adapters/dataframe.py +2 -0
- tiled-0.1.0/tiled/adapters/excel.py +102 -0
- tiled-0.1.0/tiled/adapters/files.py +6 -0
- tiled-0.1.0/tiled/adapters/hdf5.py +542 -0
- tiled-0.1.0/tiled/adapters/jpeg.py +124 -0
- tiled-0.1.0/tiled/adapters/mapping.py +883 -0
- tiled-0.1.0/tiled/adapters/netcdf.py +41 -0
- tiled-0.1.0/tiled/adapters/npy.py +116 -0
- tiled-0.1.0/tiled/adapters/parquet.py +177 -0
- tiled-0.1.0/tiled/adapters/protocols.py +155 -0
- tiled-0.1.0/tiled/adapters/resource_cache.py +102 -0
- tiled-0.1.0/tiled/adapters/sequence.py +230 -0
- tiled-0.1.0/tiled/adapters/sparse.py +229 -0
- tiled-0.1.0/tiled/adapters/sparse_blocks_parquet.py +216 -0
- tiled-0.1.0/tiled/adapters/sql.py +820 -0
- tiled-0.1.0/tiled/adapters/table.py +213 -0
- tiled-0.1.0/tiled/adapters/tiff.py +127 -0
- tiled-0.1.0/tiled/adapters/utils.py +103 -0
- tiled-0.1.0/tiled/adapters/xarray.py +133 -0
- tiled-0.1.0/tiled/adapters/zarr.py +307 -0
- tiled-0.1.0/tiled/alembic_utils.py +163 -0
- tiled-0.1.0/tiled/authenticators.py +885 -0
- tiled-0.1.0/tiled/authn_database/__init__.py +0 -0
- tiled-0.1.0/tiled/authn_database/__main__.py +32 -0
- tiled-0.1.0/tiled/authn_database/alembic.ini.template +99 -0
- tiled-0.1.0/tiled/authn_database/alembic_constants.py +5 -0
- tiled-0.1.0/tiled/authn_database/base.py +7 -0
- tiled-0.1.0/tiled/authn_database/connection_pool.py +61 -0
- tiled-0.1.0/tiled/authn_database/core.py +324 -0
- tiled-0.1.0/tiled/authn_database/migrations/README +1 -0
- tiled-0.1.0/tiled/authn_database/migrations/env.py +88 -0
- tiled-0.1.0/tiled/authn_database/migrations/script.py.mako +24 -0
- tiled-0.1.0/tiled/authn_database/migrations/versions/0c705a02954c_restore_server_default_for_time_created.py +38 -0
- tiled-0.1.0/tiled/authn_database/migrations/versions/13024b8a6b74_add_register_scope_to_default_roles.py +51 -0
- tiled-0.1.0/tiled/authn_database/migrations/versions/481830dd6c11_initialize.py +116 -0
- tiled-0.1.0/tiled/authn_database/migrations/versions/4a9dfaba4a98_add_pendingsession.py +35 -0
- tiled-0.1.0/tiled/authn_database/migrations/versions/56809bcbfcb0_add_create_scope_to_default_roles.py +51 -0
- tiled-0.1.0/tiled/authn_database/migrations/versions/722ff4e4fcc7_add_write_scopes_to_default_roles.py +51 -0
- tiled-0.1.0/tiled/authn_database/migrations/versions/769180ce732e_add_write_principals_scope_to_admin.py +47 -0
- tiled-0.1.0/tiled/authn_database/migrations/versions/a806cc635ab2_add_access_tags_to_api_keys.py +31 -0
- tiled-0.1.0/tiled/authn_database/migrations/versions/c7bd2573716d_add_session_state_column.py +28 -0
- tiled-0.1.0/tiled/authn_database/migrations/versions/d88e91ea03f9_localize_all_timestamps.py +122 -0
- tiled-0.1.0/tiled/authn_database/orm.py +242 -0
- tiled-0.1.0/tiled/catalog/__init__.py +6 -0
- tiled-0.1.0/tiled/catalog/__main__.py +32 -0
- tiled-0.1.0/tiled/catalog/adapter.py +1976 -0
- tiled-0.1.0/tiled/catalog/alembic.ini.template +99 -0
- tiled-0.1.0/tiled/catalog/alembic_constants.py +5 -0
- tiled-0.1.0/tiled/catalog/base.py +7 -0
- tiled-0.1.0/tiled/catalog/core.py +74 -0
- tiled-0.1.0/tiled/catalog/explain.py +80 -0
- tiled-0.1.0/tiled/catalog/migrations/README +1 -0
- tiled-0.1.0/tiled/catalog/migrations/env.py +88 -0
- tiled-0.1.0/tiled/catalog/migrations/script.py.mako +24 -0
- tiled-0.1.0/tiled/catalog/migrations/versions/0b033e7fbe30_add_awkward_to_structurefamily_enum.py +33 -0
- tiled-0.1.0/tiled/catalog/migrations/versions/1cd99c02d0c7_create_index_for_fulltext_search.py +39 -0
- tiled-0.1.0/tiled/catalog/migrations/versions/2ca16566d692_separate_structure_table.py +199 -0
- tiled-0.1.0/tiled/catalog/migrations/versions/3db11ff95b6c_changing_top_level_metadata_to_btree_gin.py +35 -0
- tiled-0.1.0/tiled/catalog/migrations/versions/45a702586b2a_add_composite_structure_family.py +35 -0
- tiled-0.1.0/tiled/catalog/migrations/versions/6825c778aa3c_initialize.py +22 -0
- tiled-0.1.0/tiled/catalog/migrations/versions/7809873ea2c7_add_node_id_index_in_data_sources_table.py +24 -0
- tiled-0.1.0/tiled/catalog/migrations/versions/83889e049ddc_add_table_to_structurefamily_enum.py +104 -0
- tiled-0.1.0/tiled/catalog/migrations/versions/9331ed94d6ac_add_access_blob_column_to_nodes.py +28 -0
- tiled-0.1.0/tiled/catalog/migrations/versions/a66028395cab_enrich_datasource_asset_association.py +288 -0
- tiled-0.1.0/tiled/catalog/migrations/versions/a963a6c32a0c_add_access_blob_column_to_revisions.py +28 -0
- tiled-0.1.0/tiled/catalog/migrations/versions/dfbb7478c6bd_demote_composite.py +216 -0
- tiled-0.1.0/tiled/catalog/migrations/versions/e05e918092c3_add_closure_table.py +445 -0
- tiled-0.1.0/tiled/catalog/migrations/versions/e756b9381c14_add_structure_family_to_data_sources.py +65 -0
- tiled-0.1.0/tiled/catalog/migrations/versions/ed3a4223a600_create_sqlite_table_for_fulltext_search.py +59 -0
- tiled-0.1.0/tiled/catalog/orm.py +561 -0
- tiled-0.1.0/tiled/catalog/utils.py +10 -0
- tiled-0.1.0/tiled/client/CACHEY_LICENSE.txt +28 -0
- tiled-0.1.0/tiled/client/__init__.py +20 -0
- tiled-0.1.0/tiled/client/array.py +392 -0
- tiled-0.1.0/tiled/client/auth.py +156 -0
- tiled-0.1.0/tiled/client/awkward.py +112 -0
- tiled-0.1.0/tiled/client/base.py +897 -0
- tiled-0.1.0/tiled/client/cache.py +400 -0
- tiled-0.1.0/tiled/client/cache_control.py +332 -0
- tiled-0.1.0/tiled/client/composite.py +280 -0
- tiled-0.1.0/tiled/client/constructors.py +263 -0
- tiled-0.1.0/tiled/client/container.py +1315 -0
- tiled-0.1.0/tiled/client/context.py +1062 -0
- tiled-0.1.0/tiled/client/dataframe.py +330 -0
- tiled-0.1.0/tiled/client/decoders.py +46 -0
- tiled-0.1.0/tiled/client/download.py +112 -0
- tiled-0.1.0/tiled/client/logger.py +147 -0
- tiled-0.1.0/tiled/client/metadata_update.py +50 -0
- tiled-0.1.0/tiled/client/node.py +10 -0
- tiled-0.1.0/tiled/client/register.py +640 -0
- tiled-0.1.0/tiled/client/smoke.py +44 -0
- tiled-0.1.0/tiled/client/sparse.py +181 -0
- tiled-0.1.0/tiled/client/stream.py +242 -0
- tiled-0.1.0/tiled/client/sync.py +157 -0
- tiled-0.1.0/tiled/client/transport.py +223 -0
- tiled-0.1.0/tiled/client/utils.py +439 -0
- tiled-0.1.0/tiled/client/xarray.py +226 -0
- tiled-0.1.0/tiled/commandline/__init__.py +0 -0
- tiled-0.1.0/tiled/commandline/_admin.py +193 -0
- tiled-0.1.0/tiled/commandline/_api_key.py +136 -0
- tiled-0.1.0/tiled/commandline/_catalog.py +148 -0
- tiled-0.1.0/tiled/commandline/_profile.py +174 -0
- tiled-0.1.0/tiled/commandline/_register.py +143 -0
- tiled-0.1.0/tiled/commandline/_serve.py +742 -0
- tiled-0.1.0/tiled/commandline/_utils.py +85 -0
- tiled-0.1.0/tiled/commandline/main.py +172 -0
- tiled-0.1.0/tiled/config.py +405 -0
- tiled-0.1.0/tiled/config_schemas/client_profiles.yml +168 -0
- tiled-0.1.0/tiled/config_schemas/service_configuration.yml +527 -0
- tiled-0.1.0/tiled/examples/__init__.py +0 -0
- tiled-0.1.0/tiled/examples/generate_files.py +51 -0
- tiled-0.1.0/tiled/examples/generated.py +191 -0
- tiled-0.1.0/tiled/examples/generated_minimal.py +29 -0
- tiled-0.1.0/tiled/examples/nexus.py +39 -0
- tiled-0.1.0/tiled/examples/numpy_structured_dtypes.py +21 -0
- tiled-0.1.0/tiled/examples/xdi.py +279 -0
- tiled-0.1.0/tiled/iterviews.py +248 -0
- tiled-0.1.0/tiled/media_type_registration.py +358 -0
- tiled-0.1.0/tiled/mimetypes.py +106 -0
- tiled-0.1.0/tiled/ndslice.py +176 -0
- tiled-0.1.0/tiled/profiles.py +342 -0
- tiled-0.1.0/tiled/queries.py +638 -0
- tiled-0.1.0/tiled/query_registration.py +134 -0
- tiled-0.1.0/tiled/schemas.py +36 -0
- tiled-0.1.0/tiled/serialization/__init__.py +32 -0
- tiled-0.1.0/tiled/serialization/array.py +166 -0
- tiled-0.1.0/tiled/serialization/awkward.py +78 -0
- tiled-0.1.0/tiled/serialization/container.py +115 -0
- tiled-0.1.0/tiled/serialization/image_serializer_helpers.py +384 -0
- tiled-0.1.0/tiled/serialization/scikit-image-LICENSE.txt +81 -0
- tiled-0.1.0/tiled/serialization/sparse.py +113 -0
- tiled-0.1.0/tiled/serialization/table.py +150 -0
- tiled-0.1.0/tiled/serialization/xarray.py +136 -0
- tiled-0.1.0/tiled/server/__init__.py +3 -0
- tiled-0.1.0/tiled/server/app.py +959 -0
- tiled-0.1.0/tiled/server/authentication.py +1362 -0
- tiled-0.1.0/tiled/server/compression.py +142 -0
- tiled-0.1.0/tiled/server/core.py +817 -0
- tiled-0.1.0/tiled/server/dependencies.py +163 -0
- tiled-0.1.0/tiled/server/etag.py +36 -0
- tiled-0.1.0/tiled/server/file_response_with_range.py +99 -0
- tiled-0.1.0/tiled/server/links.py +53 -0
- tiled-0.1.0/tiled/server/logging_config.py +54 -0
- tiled-0.1.0/tiled/server/metrics.py +167 -0
- tiled-0.1.0/tiled/server/principal_log_filter.py +28 -0
- tiled-0.1.0/tiled/server/protocols.py +23 -0
- tiled-0.1.0/tiled/server/router.py +2439 -0
- tiled-0.1.0/tiled/server/schemas.py +597 -0
- tiled-0.1.0/tiled/server/settings.py +68 -0
- tiled-0.1.0/tiled/server/simple.py +181 -0
- tiled-0.1.0/tiled/server/utils.py +109 -0
- tiled-0.1.0/tiled/server/zarr.py +511 -0
- tiled-0.1.0/tiled/storage.py +222 -0
- tiled-0.1.0/tiled/structures/__init__.py +0 -0
- tiled-0.1.0/tiled/structures/array.py +281 -0
- tiled-0.1.0/tiled/structures/awkward.py +75 -0
- tiled-0.1.0/tiled/structures/core.py +68 -0
- tiled-0.1.0/tiled/structures/data_source.py +41 -0
- tiled-0.1.0/tiled/structures/sparse.py +50 -0
- tiled-0.1.0/tiled/structures/table.py +119 -0
- tiled-0.1.0/tiled/type_aliases.py +30 -0
- tiled-0.1.0/tiled/utils.py +900 -0
- tiled-0.1.0/tiled/validation_registration.py +85 -0
- tiled-0.1.0/web-frontend/.eslintrc.json +15 -0
- tiled-0.1.0/web-frontend/.prettierignore +3 -0
- tiled-0.1.0/web-frontend/.prettierrc.json +1 -0
- tiled-0.1.0/web-frontend/README.md +35 -0
- tiled-0.1.0/web-frontend/import-sorter.json +7 -0
- tiled-0.1.0/web-frontend/index.html +23 -0
- tiled-0.1.0/web-frontend/package-lock.json +6378 -0
- tiled-0.1.0/web-frontend/package.json +68 -0
- tiled-0.1.0/web-frontend/public/favicon.ico +0 -0
- tiled-0.1.0/web-frontend/public/manifest.json +15 -0
- tiled-0.1.0/web-frontend/public/robots.txt +3 -0
- tiled-0.1.0/web-frontend/src/App.css +38 -0
- tiled-0.1.0/web-frontend/src/App.tsx +63 -0
- tiled-0.1.0/web-frontend/src/client.ts +51 -0
- tiled-0.1.0/web-frontend/src/clipboard-copy.d.ts +6 -0
- tiled-0.1.0/web-frontend/src/components/array-1d/array-1d.test.tsx +60 -0
- tiled-0.1.0/web-frontend/src/components/array-1d/array-1d.tsx +161 -0
- tiled-0.1.0/web-frontend/src/components/array-nd/array-nd.test.tsx +82 -0
- tiled-0.1.0/web-frontend/src/components/array-nd/array-nd.tsx +117 -0
- tiled-0.1.0/web-frontend/src/components/choose-partition/choose-partition.tsx +50 -0
- tiled-0.1.0/web-frontend/src/components/column-list/column-list.tsx +96 -0
- tiled-0.1.0/web-frontend/src/components/contents/contents.test.tsx +180 -0
- tiled-0.1.0/web-frontend/src/components/contents/contents.tsx +113 -0
- tiled-0.1.0/web-frontend/src/components/cut-slider/cut-slider.tsx +71 -0
- tiled-0.1.0/web-frontend/src/components/download-array/download-array.test.tsx +111 -0
- tiled-0.1.0/web-frontend/src/components/download-array/download-array.tsx +157 -0
- tiled-0.1.0/web-frontend/src/components/download-core/download-core.test.tsx +122 -0
- tiled-0.1.0/web-frontend/src/components/download-core/download-core.tsx +186 -0
- tiled-0.1.0/web-frontend/src/components/download-node/download-node.test.tsx +22 -0
- tiled-0.1.0/web-frontend/src/components/download-node/download-node.tsx +23 -0
- tiled-0.1.0/web-frontend/src/components/download-table/download-table.test.tsx +132 -0
- tiled-0.1.0/web-frontend/src/components/download-table/download-table.tsx +105 -0
- tiled-0.1.0/web-frontend/src/components/error-boundary/error-boundary.test.tsx +59 -0
- tiled-0.1.0/web-frontend/src/components/error-boundary/error-boundary.tsx +36 -0
- tiled-0.1.0/web-frontend/src/components/json-viewer/json-viewer.tsx +28 -0
- tiled-0.1.0/web-frontend/src/components/line/line.tsx +51 -0
- tiled-0.1.0/web-frontend/src/components/metadata-view/metadata-view.tsx +28 -0
- tiled-0.1.0/web-frontend/src/components/node-breadcrumbs/node-breadcrumbs.test.tsx +50 -0
- tiled-0.1.0/web-frontend/src/components/node-breadcrumbs/node-breadcrumbs.tsx +42 -0
- tiled-0.1.0/web-frontend/src/components/node-contents/node-contents.tsx +64 -0
- tiled-0.1.0/web-frontend/src/components/node-lazy-contents/node-lazy-contents.test.tsx +262 -0
- tiled-0.1.0/web-frontend/src/components/node-lazy-contents/node-lazy-contents.tsx +197 -0
- tiled-0.1.0/web-frontend/src/components/overview-array/overview-array.tsx +63 -0
- tiled-0.1.0/web-frontend/src/components/overview-generic-node/overview-generic-node.tsx +46 -0
- tiled-0.1.0/web-frontend/src/components/overview-table/overview-table.tsx +176 -0
- tiled-0.1.0/web-frontend/src/components/range-slider/range-slider.test.tsx +71 -0
- tiled-0.1.0/web-frontend/src/components/range-slider/range-slider.tsx +123 -0
- tiled-0.1.0/web-frontend/src/components/tiled-app-bar/tiled-app-bar.test.tsx +34 -0
- tiled-0.1.0/web-frontend/src/components/tiled-app-bar/tiled-app-bar.tsx +36 -0
- tiled-0.1.0/web-frontend/src/context/settings.tsx +11 -0
- tiled-0.1.0/web-frontend/src/index.tsx +21 -0
- tiled-0.1.0/web-frontend/src/openapi_schemas.ts +432 -0
- tiled-0.1.0/web-frontend/src/routes/browse.test.tsx +355 -0
- tiled-0.1.0/web-frontend/src/routes/browse.tsx +299 -0
- tiled-0.1.0/web-frontend/src/settings.ts +32 -0
- tiled-0.1.0/web-frontend/src/theme.ts +19 -0
- tiled-0.1.0/web-frontend/test/e2e.spec.ts +6 -0
- tiled-0.1.0/web-frontend/test/setup.ts +10 -0
- tiled-0.1.0/web-frontend/tsconfig.json +20 -0
- tiled-0.1.0/web-frontend/vite-env.d.ts +1 -0
- tiled-0.1.0/web-frontend/vite.config.js +40 -0
tiled-0.1.0/.codecov.yml
ADDED
tiled-0.1.0/.coveragerc
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "tiled-devcontainer",
|
|
3
|
+
"build": {
|
|
4
|
+
"context": "..",
|
|
5
|
+
"dockerfile": "../Containerfile",
|
|
6
|
+
"target": "developer",
|
|
7
|
+
"args": {
|
|
8
|
+
"PYTHON_VERSION": "3.9"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"containerEnv": {
|
|
12
|
+
"TILED_BUILD_SKIP_UI": "1"
|
|
13
|
+
},
|
|
14
|
+
"features": {
|
|
15
|
+
"ghcr.io/devcontainers/features/git:1": {}
|
|
16
|
+
},
|
|
17
|
+
"postCreateCommand": "set -ex && uv sync --extra all --extra dev --project src && uv tool install pre-commit --with pre-commit-uv && SHELL=bash uv tool update-shell && pre-commit install",
|
|
18
|
+
"customizations": {
|
|
19
|
+
"vscode": {
|
|
20
|
+
"settings": {
|
|
21
|
+
"python.defaultInterpreterPath": "/app/bin/python"
|
|
22
|
+
},
|
|
23
|
+
"extensions": [
|
|
24
|
+
"ms-python.python",
|
|
25
|
+
"ms-toolsai.jupyter",
|
|
26
|
+
"GitHub.codespaces",
|
|
27
|
+
"ms-vscode-remote.remote-containers"
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
tiled-0.1.0/.flake8
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
schedule:
|
|
9
|
+
- cron: '00 4 * * *' # daily at 4AM
|
|
10
|
+
|
|
11
|
+
env:
|
|
12
|
+
TEST_TAG: bluesky/tiled:test
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
pre-commit:
|
|
16
|
+
name: Static Code Checks
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v3
|
|
20
|
+
- uses: pre-commit/action@v3.0.0
|
|
21
|
+
|
|
22
|
+
linux_checks:
|
|
23
|
+
|
|
24
|
+
name: Test on Linux
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
strategy:
|
|
27
|
+
matrix:
|
|
28
|
+
python-version:
|
|
29
|
+
- "3.9"
|
|
30
|
+
- "3.10"
|
|
31
|
+
- "3.11"
|
|
32
|
+
- "3.12"
|
|
33
|
+
- "3.13"
|
|
34
|
+
fail-fast: false
|
|
35
|
+
steps:
|
|
36
|
+
|
|
37
|
+
- uses: actions/checkout@v3
|
|
38
|
+
|
|
39
|
+
- name: Install uv and set the python version
|
|
40
|
+
uses: astral-sh/setup-uv@v6
|
|
41
|
+
with:
|
|
42
|
+
python-version: ${{ matrix.python-version }}
|
|
43
|
+
|
|
44
|
+
- name: Install tiled
|
|
45
|
+
run: uv sync --all-extras
|
|
46
|
+
|
|
47
|
+
# TODO Find a new image to use.
|
|
48
|
+
# https://github.com/bluesky/tiled/issues/1109
|
|
49
|
+
# - name: Start LDAP service in container.
|
|
50
|
+
# shell: bash -l {0}
|
|
51
|
+
# run: source continuous_integration/scripts/start_LDAP.sh
|
|
52
|
+
|
|
53
|
+
- name: Download SQLite example data.
|
|
54
|
+
shell: bash -l {0}
|
|
55
|
+
run: source continuous_integration/scripts/download_sqlite_data.sh
|
|
56
|
+
|
|
57
|
+
- name: Start PostgreSQL service in container.
|
|
58
|
+
shell: bash -l {0}
|
|
59
|
+
run: source continuous_integration/scripts/start_postgres.sh
|
|
60
|
+
|
|
61
|
+
- name: Start Redis service in container.
|
|
62
|
+
shell: bash -l {0}
|
|
63
|
+
run: source continuous_integration/scripts/start_redis.sh
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
- name: Ensure example data is migrated to current catalog database schema.
|
|
67
|
+
# The example data is expected to be kept up to date to the latest Tiled
|
|
68
|
+
# release, but this CI run may include some unreleased schema changes,
|
|
69
|
+
# so we run a migration here.
|
|
70
|
+
shell: bash -l {0}
|
|
71
|
+
run: |
|
|
72
|
+
set -vxeuo pipefail
|
|
73
|
+
uv run tiled catalog upgrade-database sqlite:///tiled_test_db_sqlite.db
|
|
74
|
+
uv run tiled catalog upgrade-database postgresql://postgres:secret@localhost:5432/tiled-example-data
|
|
75
|
+
|
|
76
|
+
- name: Test with pytest
|
|
77
|
+
shell: bash -l {0}
|
|
78
|
+
run: |
|
|
79
|
+
set -vxeuo pipefail
|
|
80
|
+
uv run coverage run -m pytest -v
|
|
81
|
+
uv run coverage report -m
|
|
82
|
+
uv run coverage xml -o cov.xml
|
|
83
|
+
env:
|
|
84
|
+
# Provide test suite with PostgreSQL and Redis databases to use.
|
|
85
|
+
TILED_TEST_POSTGRESQL_URI: postgresql://postgres:secret@localhost:5432
|
|
86
|
+
TILED_TEST_REIDS_URI: redis://localhost:6379
|
|
87
|
+
# TODO Reinstate after finding a new image to use
|
|
88
|
+
# https://github.com/bluesky/tiled/issues/1109
|
|
89
|
+
# # Opt in to LDAPAuthenticator tests.
|
|
90
|
+
# TILED_TEST_LDAP: 1
|
|
91
|
+
|
|
92
|
+
- name: Upload coverage to Codecov
|
|
93
|
+
uses: codecov/codecov-action@v4
|
|
94
|
+
with:
|
|
95
|
+
name: ${{ inputs.python-version }}/${{ inputs.runs-on }}
|
|
96
|
+
files: cov.xml
|
|
97
|
+
env:
|
|
98
|
+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
99
|
+
|
|
100
|
+
windows_checks:
|
|
101
|
+
name: Test on Windows
|
|
102
|
+
runs-on: windows-latest
|
|
103
|
+
strategy:
|
|
104
|
+
matrix:
|
|
105
|
+
python-version: ["3.12"]
|
|
106
|
+
fail-fast: false
|
|
107
|
+
steps:
|
|
108
|
+
|
|
109
|
+
- uses: actions/checkout@v3
|
|
110
|
+
|
|
111
|
+
- name: Install uv and set the python version
|
|
112
|
+
uses: astral-sh/setup-uv@v6
|
|
113
|
+
with:
|
|
114
|
+
python-version: ${{ matrix.python-version }}
|
|
115
|
+
|
|
116
|
+
- name: Install tiled
|
|
117
|
+
run: uv sync --all-extras
|
|
118
|
+
env:
|
|
119
|
+
TILED_BUILD_SKIP_UI: 1
|
|
120
|
+
|
|
121
|
+
- name: Test with pytest
|
|
122
|
+
run: uv run pytest -v
|
|
123
|
+
|
|
124
|
+
container_canary:
|
|
125
|
+
name: Build and validate container
|
|
126
|
+
runs-on: ubuntu-latest
|
|
127
|
+
steps:
|
|
128
|
+
- name: Checkout
|
|
129
|
+
uses: actions/checkout@v3
|
|
130
|
+
|
|
131
|
+
- name: Install Container Canary
|
|
132
|
+
run: |
|
|
133
|
+
curl -L https://github.com/NVIDIA/container-canary/releases/download/v0.2.1/canary_linux_amd64 > /usr/local/bin/canary
|
|
134
|
+
chmod +x /usr/local/bin/canary
|
|
135
|
+
|
|
136
|
+
- name: Set up Docker Buildx
|
|
137
|
+
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3
|
|
138
|
+
|
|
139
|
+
- name: Build Docker image on multiple arch
|
|
140
|
+
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
|
|
141
|
+
with:
|
|
142
|
+
context: .
|
|
143
|
+
file: Containerfile
|
|
144
|
+
platforms: linux/amd64,linux/arm64
|
|
145
|
+
cache-from: type=gha
|
|
146
|
+
cache-to: type=gha,mode=max
|
|
147
|
+
|
|
148
|
+
- name: Tag and load Docker image on single arch for testing (will use cache)
|
|
149
|
+
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
|
|
150
|
+
with:
|
|
151
|
+
context: .
|
|
152
|
+
file: Containerfile
|
|
153
|
+
load: true
|
|
154
|
+
push: false
|
|
155
|
+
tags: ${{ env.TEST_TAG }}
|
|
156
|
+
cache-from: type=gha
|
|
157
|
+
cache-to: type=gha,mode=max
|
|
158
|
+
|
|
159
|
+
- name: Validate container
|
|
160
|
+
run: |
|
|
161
|
+
canary validate --file canary-validator.yml ${{ env.TEST_TAG }}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: Documentation
|
|
2
|
+
|
|
3
|
+
on: [push, pull_request]
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
build:
|
|
7
|
+
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
strategy:
|
|
10
|
+
matrix:
|
|
11
|
+
python-version: ["3.12"]
|
|
12
|
+
fail-fast: false
|
|
13
|
+
|
|
14
|
+
steps:
|
|
15
|
+
|
|
16
|
+
- uses: actions/checkout@v3
|
|
17
|
+
|
|
18
|
+
- name: Install uv and set the python version
|
|
19
|
+
uses: astral-sh/setup-uv@v6
|
|
20
|
+
with:
|
|
21
|
+
python-version: ${{ matrix.python-version }}
|
|
22
|
+
|
|
23
|
+
- name: Install tiled
|
|
24
|
+
run: uv sync --all-extras
|
|
25
|
+
|
|
26
|
+
- name: Build Docs
|
|
27
|
+
shell: bash -l {0}
|
|
28
|
+
run: uv run make -C docs/ html
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
name: Publish Documentation
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
build:
|
|
10
|
+
if: github.repository_owner == 'bluesky'
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
strategy:
|
|
13
|
+
matrix:
|
|
14
|
+
python-version: ["3.12"]
|
|
15
|
+
fail-fast: false
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
|
|
19
|
+
- name: Set env.REPOSITORY_NAME # just the repo, as opposed to org/repo
|
|
20
|
+
shell: bash -l {0}
|
|
21
|
+
run: |
|
|
22
|
+
export REPOSITORY_NAME=${GITHUB_REPOSITORY#*/}
|
|
23
|
+
echo "REPOSITORY_NAME=${REPOSITORY_NAME}" >> $GITHUB_ENV
|
|
24
|
+
|
|
25
|
+
- uses: actions/checkout@v3
|
|
26
|
+
with:
|
|
27
|
+
fetch-depth: 1000 # should be enough to reach the most recent tag
|
|
28
|
+
|
|
29
|
+
- name: Install uv and set the python version
|
|
30
|
+
uses: astral-sh/setup-uv@v6
|
|
31
|
+
with:
|
|
32
|
+
python-version: ${{ matrix.python-version }}
|
|
33
|
+
|
|
34
|
+
- name: Install tiled
|
|
35
|
+
run: uv sync --all-extras
|
|
36
|
+
|
|
37
|
+
- name: Build Docs
|
|
38
|
+
shell: bash -l {0}
|
|
39
|
+
run: uv run make -C docs/ html
|
|
40
|
+
|
|
41
|
+
- name: Deploy documentation to blueskyproject.io.
|
|
42
|
+
# We pin to the SHA, not the tag, for security reasons.
|
|
43
|
+
# https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions
|
|
44
|
+
uses: peaceiris/actions-gh-pages@bbdfb200618d235585ad98e965f4aafc39b4c501 # v3.7.3
|
|
45
|
+
with:
|
|
46
|
+
deploy_key: ${{ secrets.ACTIONS_DOCUMENTATION_DEPLOY_KEY }}
|
|
47
|
+
publish_branch: master
|
|
48
|
+
publish_dir: ./docs/build/html
|
|
49
|
+
external_repository: bluesky/bluesky.github.io
|
|
50
|
+
destination_dir: ${{ env.REPOSITORY_NAME }} # just the repo name, without the "bluesky/"
|
|
51
|
+
keep_files: true # Keep old files.
|
|
52
|
+
force_orphan: false # Keep git history.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# This workflow uses actions that are not certified by GitHub.
|
|
2
|
+
# They are provided by a third-party and are governed by
|
|
3
|
+
# separate terms of service, privacy policy, and support
|
|
4
|
+
# documentation.
|
|
5
|
+
|
|
6
|
+
name: Create and publish image and chart
|
|
7
|
+
|
|
8
|
+
on:
|
|
9
|
+
push:
|
|
10
|
+
branches: ['main']
|
|
11
|
+
tags: ['v*']
|
|
12
|
+
|
|
13
|
+
env:
|
|
14
|
+
REGISTRY: ghcr.io
|
|
15
|
+
IMAGE_NAME: ${{ github.repository }}
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
build-and-push:
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
permissions:
|
|
21
|
+
contents: read
|
|
22
|
+
packages: write
|
|
23
|
+
|
|
24
|
+
steps:
|
|
25
|
+
- name: Checkout repository
|
|
26
|
+
uses: actions/checkout@v4
|
|
27
|
+
with:
|
|
28
|
+
fetch-depth: 0
|
|
29
|
+
|
|
30
|
+
- name: Log in to the Container registry
|
|
31
|
+
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
|
32
|
+
with:
|
|
33
|
+
registry: ${{ env.REGISTRY }}
|
|
34
|
+
username: ${{ github.actor }}
|
|
35
|
+
password: ${{ secrets.GITHUB_TOKEN }}
|
|
36
|
+
|
|
37
|
+
- name: Set up Docker Buildx
|
|
38
|
+
uses: docker/setup-buildx-action@v3
|
|
39
|
+
|
|
40
|
+
- name: Extract metadata (tags, labels) for Docker
|
|
41
|
+
id: meta
|
|
42
|
+
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5
|
|
43
|
+
with:
|
|
44
|
+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
|
45
|
+
tags: |
|
|
46
|
+
type=semver,pattern={{version}}
|
|
47
|
+
type=raw,value=latest
|
|
48
|
+
|
|
49
|
+
- name: Build and push Docker image
|
|
50
|
+
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
|
|
51
|
+
if: github.ref_type == 'tag'
|
|
52
|
+
with:
|
|
53
|
+
context: .
|
|
54
|
+
file: Containerfile
|
|
55
|
+
platforms: linux/amd64,linux/arm64
|
|
56
|
+
push: true
|
|
57
|
+
tags: ${{ steps.meta.outputs.tags }}
|
|
58
|
+
labels: ${{ steps.meta.outputs.labels }}
|
|
59
|
+
cache-from: type=gha
|
|
60
|
+
cache-to: type=gha,mode=max
|
|
61
|
+
|
|
62
|
+
- name: Install Helm
|
|
63
|
+
uses: Azure/setup-helm@v4
|
|
64
|
+
id: install
|
|
65
|
+
if: github.ref_type == 'tag'
|
|
66
|
+
|
|
67
|
+
- name: Lint Helm chart
|
|
68
|
+
run: helm lint helm/tiled
|
|
69
|
+
|
|
70
|
+
- name: Log in to the Chart registry
|
|
71
|
+
run: |
|
|
72
|
+
echo ${{ secrets.GITHUB_TOKEN }} | helm registry login ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} --username ${{ github.repository_owner }} --password-stdin
|
|
73
|
+
|
|
74
|
+
- name: Package and Push chart
|
|
75
|
+
if: github.ref_type == 'tag'
|
|
76
|
+
run: |
|
|
77
|
+
helm dependencies update helm/tiled
|
|
78
|
+
helm package helm/tiled --version ${{ steps.meta.outputs.version }} --app-version ${{ steps.meta.outputs.version }} -d /tmp/
|
|
79
|
+
|
|
80
|
+
- name: Publish Helm chart
|
|
81
|
+
if: github.ref_type == 'tag'
|
|
82
|
+
run: |
|
|
83
|
+
helm push /tmp/tiled-${{ steps.meta.outputs.version }}.tgz oci://ghcr.io/bluesky/charts
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
name: Publish package on PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
release:
|
|
9
|
+
types:
|
|
10
|
+
- published
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
dist:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
with:
|
|
19
|
+
fetch-depth: 0
|
|
20
|
+
|
|
21
|
+
- name: Build SDist and wheel
|
|
22
|
+
run: pipx run build
|
|
23
|
+
|
|
24
|
+
- uses: actions/upload-artifact@v4
|
|
25
|
+
with:
|
|
26
|
+
path: dist/*
|
|
27
|
+
|
|
28
|
+
- name: Check metadata
|
|
29
|
+
run: pipx run twine check dist/*
|
|
30
|
+
|
|
31
|
+
publish:
|
|
32
|
+
needs: [dist]
|
|
33
|
+
environment: pypi
|
|
34
|
+
permissions:
|
|
35
|
+
id-token: write
|
|
36
|
+
runs-on: ubuntu-latest
|
|
37
|
+
if: github.event_name == 'release' && github.event.action == 'published'
|
|
38
|
+
|
|
39
|
+
steps:
|
|
40
|
+
- uses: actions/download-artifact@v4
|
|
41
|
+
with:
|
|
42
|
+
name: artifact
|
|
43
|
+
path: dist
|
|
44
|
+
|
|
45
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
tiled-0.1.0/.gitignore
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
|
|
4
|
+
# Sphinx documentation
|
|
5
|
+
docs/build/
|
|
6
|
+
docs/source/reference/generated/
|
|
7
|
+
|
|
8
|
+
# Builds
|
|
9
|
+
/build
|
|
10
|
+
/dist
|
|
11
|
+
/tiled.egg-info
|
|
12
|
+
/web-frontend/dist
|
|
13
|
+
|
|
14
|
+
/web-frontend/node_modules
|
|
15
|
+
|
|
16
|
+
# pytest
|
|
17
|
+
.pytest_cache/
|
|
18
|
+
|
|
19
|
+
# Unit test / coverage reports
|
|
20
|
+
coverage/
|
|
21
|
+
htmlcov/
|
|
22
|
+
.tox/
|
|
23
|
+
.coverage
|
|
24
|
+
.cache
|
|
25
|
+
nosetests.xml
|
|
26
|
+
coverage.xml
|
|
27
|
+
cover/*
|
|
28
|
+
|
|
29
|
+
# PyBuilder
|
|
30
|
+
target/
|
|
31
|
+
|
|
32
|
+
# Editor files
|
|
33
|
+
#mac
|
|
34
|
+
.DS_Store
|
|
35
|
+
*~
|
|
36
|
+
|
|
37
|
+
#vim
|
|
38
|
+
*.swp
|
|
39
|
+
*.swo
|
|
40
|
+
|
|
41
|
+
#pycharm
|
|
42
|
+
.idea/
|
|
43
|
+
|
|
44
|
+
#VSCode
|
|
45
|
+
.vscode/*
|
|
46
|
+
!.vscode/launch.json
|
|
47
|
+
|
|
48
|
+
#Ipython Notebook
|
|
49
|
+
.ipynb_checkpoints
|
|
50
|
+
|
|
51
|
+
example_files/
|
|
52
|
+
tokens.json
|
|
53
|
+
|
|
54
|
+
# generated docs
|
|
55
|
+
docs/source/reference/client-profiles.md
|
|
56
|
+
docs/source/reference/service-configuration.md
|
|
57
|
+
docs/source/reference/api.yml
|
|
58
|
+
|
|
59
|
+
# placed React bundle
|
|
60
|
+
share/tiled/ui
|
|
61
|
+
|
|
62
|
+
config.yaml
|
|
63
|
+
config.yml
|
|
64
|
+
*.sqlite
|
|
65
|
+
*.db
|
|
66
|
+
*.db-wal
|
|
67
|
+
*.db-shm
|
|
68
|
+
|
|
69
|
+
prometheus_data
|
|
70
|
+
grafana_data
|
|
71
|
+
data
|
|
72
|
+
alembic.ini
|
|
73
|
+
|
|
74
|
+
tiled/_version.py
|
|
75
|
+
|
|
76
|
+
.env
|
|
77
|
+
.asv/
|
|
78
|
+
venv/
|
|
79
|
+
# pixi environments
|
|
80
|
+
.pixi
|
|
81
|
+
pixi.lock
|
|
82
|
+
# uv environments
|
|
83
|
+
uv.lock
|
|
84
|
+
.venv
|
|
85
|
+
# pixi environments
|
|
86
|
+
.pixi/*
|
|
87
|
+
!.pixi/config.toml
|
tiled-0.1.0/.isort.cfg
ADDED
tiled-0.1.0/.mypy.ini
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
[mypy]
|
|
2
|
+
ignore_errors = True
|
|
3
|
+
ignore_missing_imports = True
|
|
4
|
+
disallow_untyped_defs = False
|
|
5
|
+
disallow_untyped_calls = False
|
|
6
|
+
check_untyped_defs = False
|
|
7
|
+
disallow_incomplete_defs = False
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
[mypy-tiled.adapters.*]
|
|
11
|
+
ignore_errors = False
|
|
12
|
+
ignore_missing_imports = False
|
|
13
|
+
check_untyped_defs = True
|
|
14
|
+
disallow_untyped_defs = True
|
|
15
|
+
disallow_incomplete_defs = True
|
|
16
|
+
disallow_untyped_calls = True
|
|
17
|
+
disallow_untyped_decorators = True
|
|
18
|
+
|
|
19
|
+
[mypy-tiled._tests.adapters.*]
|
|
20
|
+
ignore_errors = False
|
|
21
|
+
ignore_missing_imports = False
|
|
22
|
+
check_untyped_defs = True
|
|
23
|
+
disallow_untyped_defs = True
|
|
24
|
+
disallow_incomplete_defs = True
|
|
25
|
+
disallow_untyped_calls = True
|
|
26
|
+
disallow_untyped_decorators = False
|
|
27
|
+
|
|
28
|
+
[mypy-tiled._tests.test_protocols]
|
|
29
|
+
ignore_errors = False
|
|
30
|
+
ignore_missing_imports = False
|
|
31
|
+
check_untyped_defs = True
|
|
32
|
+
disallow_untyped_defs = True
|
|
33
|
+
disallow_incomplete_defs = True
|
|
34
|
+
disallow_untyped_calls = True
|
|
35
|
+
disallow_untyped_decorators = True
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# See https://pre-commit.com for more information
|
|
2
|
+
# See https://pre-commit.com/hooks.html for more hooks
|
|
3
|
+
repos:
|
|
4
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
5
|
+
rev: v4.5.0
|
|
6
|
+
hooks:
|
|
7
|
+
- id: trailing-whitespace
|
|
8
|
+
- id: end-of-file-fixer
|
|
9
|
+
- id: check-ast
|
|
10
|
+
- id: check-case-conflict
|
|
11
|
+
- id: check-merge-conflict
|
|
12
|
+
- id: check-symlinks
|
|
13
|
+
- id: check-yaml
|
|
14
|
+
# These yaml files output valid yaml only after templating
|
|
15
|
+
exclude: ^helm/tiled/templates/
|
|
16
|
+
- id: debug-statements
|
|
17
|
+
|
|
18
|
+
- repo: https://github.com/pycqa/flake8
|
|
19
|
+
rev: 6.1.0
|
|
20
|
+
hooks:
|
|
21
|
+
- id: flake8
|
|
22
|
+
|
|
23
|
+
- repo: https://github.com/timothycrosley/isort
|
|
24
|
+
rev: 5.12.0
|
|
25
|
+
hooks:
|
|
26
|
+
- id: isort
|
|
27
|
+
|
|
28
|
+
- repo: https://github.com/psf/black
|
|
29
|
+
rev: 23.10.1
|
|
30
|
+
hooks:
|
|
31
|
+
- id: black
|
|
32
|
+
|
|
33
|
+
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
34
|
+
rev: v1.9.0
|
|
35
|
+
hooks:
|
|
36
|
+
- id: mypy
|
|
37
|
+
args: [--strict]
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.2.0",
|
|
3
|
+
"configurations": [
|
|
4
|
+
{
|
|
5
|
+
"name": "Debug Tiled Server",
|
|
6
|
+
"type": "python",
|
|
7
|
+
"request": "launch",
|
|
8
|
+
"module": "tiled",
|
|
9
|
+
"args": [
|
|
10
|
+
"serve",
|
|
11
|
+
"config",
|
|
12
|
+
"--host", "127.0.0.1",
|
|
13
|
+
"--port", "8000",
|
|
14
|
+
"--scalable"
|
|
15
|
+
],
|
|
16
|
+
"env": {
|
|
17
|
+
// Point this at any of your YAML configs or a config directory
|
|
18
|
+
"TILED_CONFIG":
|
|
19
|
+
"${workspaceFolder}/example_configs/single_catalog_single_user.yml",
|
|
20
|
+
"TILED_SINGLE_USER_API_KEY": "secret",
|
|
21
|
+
},
|
|
22
|
+
"console": "integratedTerminal",
|
|
23
|
+
"justMyCode": false,
|
|
24
|
+
"jinja": true,
|
|
25
|
+
"subProcess": true
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|