GEMMA DEVELOPER AGENTSAVED EVIDENCE
← Dataset Exploration
ARCHIVED TRAINING / RaRe-Technologies/smart_open

rare-technologies__smart_open-702

This is a preserved training example. Membership in the current training wave has not been verified.
RaRe-Technologies/smart_open · Task 30 of 169

Problem statement

Allow specifying metadata for azure uploads
#### Problem description

I would like to upload an Azure blob with metadata. This is currently possible with s3 and gcs:

```py
metadata = {"name": "bla"}
bucket = "test"
key = "test"
open(
    f"s3://{bucket}/{key}",
    "wb",
    transport_params={
        "client_kwargs": {"S3.Client.create_multipart_upload": {"Metadata": metadata},
    },
)
open(
    f"gs://{bucket}/{key}",
    "wb",
    transport_params={
        "blob_properties": {"metadata": metadata},
    },
)
```

For Azure, `smart_open` only has the possibility of passing a custom [`BlobClient`](https://docs.microsoft.com/en-us/python/api/azure-storage-blob/azure.storage.blob.blobclient?view=azure-python) but it looks like metadata needs to be [explicitly passed](https://github.com/Azure/azure-sdk-for-python/blob/azure-storage-blob_12.12.0/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py#L2631) to `BlobClient.commit_block_list`. 

I suggest introducing `blob_kwargs`:
```py
open(
    f"azure://{container}/{path}",
    "wb",
    transport_params={
        "blob_kwargs": {"metadata": metadata},
    },
)
```

#### Steps/code to reproduce the problem

N/A

#### Versions

Please provide the output of:

```pycon
>>> import platform, sys, smart_open
>>> print(platform.platform())
>>> print("Python", sys.version)
>>> print("smart_open", smart_open.__version__)
macOS-10.15.7-x86_64-i386-64bit
Python 3.8.10 (default, Sep  1 2021, 10:14:33)
[Clang 12.0.0 (clang-1200.0.32.29)]
smart_open 6.0.0
```

#### Checklist

Before you create the issue, please make sure you have:

- [x] Described the problem clearly
- [x] Provided a minimal reproducible example, including any required data
- [x] Provided the version numbers of the relevant software

Training membership

opd_e4b_pure_v7 opd_e4b_pure_v7b

Task issues extracted from preserved verified_rft_messages training examples. This is not a verified current RL wave manifest.

Task and snapshot provenance

Snapshot captured 2026-11-12T17:06:59.476467+00:00 · Autoresearch-Arena/gemma-4-developer-agent

{
  "datasets": [
    "opd_e4b_pure_v7",
    "opd_e4b_pure_v7b"
  ],
  "examples": 9,
  "instance_id": "rare-technologies__smart_open-702",
  "problem_statement": "Allow specifying metadata for azure uploads\n#### Problem description\r\n\r\nI would like to upload an Azure blob with metadata. This is currently possible with s3 and gcs:\r\n\r\n```py\r\nmetadata = {\"name\": \"bla\"}\r\nbucket = \"test\"\r\nkey = \"test\"\r\nopen(\r\n    f\"s3://{bucket}/{key}\",\r\n    \"wb\",\r\n    transport_params={\r\n        \"client_kwargs\": {\"S3.Client.create_multipart_upload\": {\"Metadata\": metadata},\r\n    },\r\n)\r\nopen(\r\n    f\"gs://{bucket}/{key}\",\r\n    \"wb\",\r\n    transport_params={\r\n        \"blob_properties\": {\"metadata\": metadata},\r\n    },\r\n)\r\n```\r\n\r\nFor Azure, `smart_open` only has the possibility of passing a custom [`BlobClient`](https://docs.microsoft.com/en-us/python/api/azure-storage-blob/azure.storage.blob.blobclient?view=azure-python) but it looks like metadata needs to be [explicitly passed](https://github.com/Azure/azure-sdk-for-python/blob/azure-storage-blob_12.12.0/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py#L2631) to `BlobClient.commit_block_list`. \r\n\r\nI suggest introducing `blob_kwargs`:\r\n```py\r\nopen(\r\n    f\"azure://{container}/{path}\",\r\n    \"wb\",\r\n    transport_params={\r\n        \"blob_kwargs\": {\"metadata\": metadata},\r\n    },\r\n)\r\n```\r\n\r\n#### Steps/code to reproduce the problem\r\n\r\nN/A\r\n\r\n#### Versions\r\n\r\nPlease provide the output of:\r\n\r\n```pycon\r\n>>> import platform, sys, smart_open\r\n>>> print(platform.platform())\r\n>>> print(\"Python\", sys.version)\r\n>>> print(\"smart_open\", smart_open.__version__)\r\nmacOS-10.15.7-x86_64-i386-64bit\r\nPython 3.8.10 (default, Sep  1 2021, 10:14:33)\r\n[Clang 12.0.0 (clang-1200.0.32.29)]\r\nsmart_open 6.0.0\r\n```\r\n\r\n#### Checklist\r\n\r\nBefore you create the issue, please make sure you have:\r\n\r\n- [x] Described the problem clearly\r\n- [x] Provided a minimal reproducible example, including any required data\r\n- [x] Provided the version numbers of the relevant software",
  "repo": "RaRe-Technologies/smart_open",
  "source": "v2/experiments/train_data/opd_e4b_pure_v7/verified_rft_messages.jsonl",
  "source_sha256": "e37f7bd675322f3f81500b73559d60d5f602ca0537bf19f5cb06332c728c7b72"
}
{
  "captured_at": "2026-11-12T17:06:59.476467+00:00",
  "membership": "archived training",
  "membership_evidence": "Task issues extracted from preserved verified_rft_messages training examples. This is not a verified current RL wave manifest.",
  "name": "Preserved post-training task archive",
  "source": "Autoresearch-Arena/gemma-4-developer-agent",
  "source_revision": "016496de222aaafca0d4ee4c18efc63ba616f76e",
  "sources": [
    {
      "path": "v2/experiments/train_data/opd_e4b_cispo_v5/verified_rft_messages.jsonl",
      "sha256": "a43610ad0dfb6ace95375cfae09000f41afc0338cc925af870a4ade7a9b20c4c"
    },
    {
      "path": "v2/experiments/train_data/opd_e4b_hybrid_v3/verified_rft_messages.jsonl",
      "sha256": "bd326303eb127e8e5e08f03daf97bb88d79d19709d59f3f93f348bc56686a8df"
    },
    {
      "path": "v2/experiments/train_data/opd_e4b_onpolicy_v3/verified_rft_messages.jsonl",
      "sha256": "960c680e797e823a0d3a22f4b1d5ef60a72971373d703b877340b0c9126aaf68"
    },
    {
      "path": "v2/experiments/train_data/opd_e4b_pure_v6a/verified_rft_messages.jsonl",
      "sha256": "f045b7ca5b3883a1e2eaee81e1c02a4a1b53dd7b7b36e98bacb2ba5823a15148"
    },
    {
      "path": "v2/experiments/train_data/opd_e4b_pure_v6b/verified_rft_messages.jsonl",
      "sha256": "0f62460a9706eea5e1605255896f191ab00cb5706c5f1f2e1c293e9a718218dc"
    },
    {
      "path": "v2/experiments/train_data/opd_e4b_pure_v7/verified_rft_messages.jsonl",
      "sha256": "e37f7bd675322f3f81500b73559d60d5f602ca0537bf19f5cb06332c728c7b72"
    },
    {
      "path": "v2/experiments/train_data/opd_e4b_pure_v7b/verified_rft_messages.jsonl",
      "sha256": "b864bdc8695183433eef6e31cb8d33fad44ba3aded2170c1ade4ad5b2944ce23"
    },
    {
      "path": "v2/experiments/train_data/opd_e4b_self_audit_v4/verified_rft_messages.jsonl",
      "sha256": "0026023745afb8f3dc1c176dc7f7171157b4ad5a66656b524af218e8e19ceee6"
    },
    {
      "path": "v2/experiments/train_data/rft_e4b_aligned_v2/verified_rft_messages.jsonl",
      "sha256": "92a4515fee9d152b0d4c510ee3ce4caaaffe2003ba7584469f8027f174aab18c"
    },
    {
      "path": "v2/experiments/train_data/rft_v1/verified_rft_messages.jsonl",
      "sha256": "a42453ccd7ac7680b0a03865e8e7080bc8bf74c8d9d193b440c441ed46f8512b"
    },
    {
      "path": "v2/experiments/train_data/rft_v2/verified_rft_messages.jsonl",
      "sha256": "18f4b3bd7e651f83c6acab479c9475e3fa50dc652a384f309e97146983ac85ba"
    }
  ]
}