Skip to content

Commit f103f5e

Browse files
Fix v0.1.2: URL-encode series IDs with slashes (FRED/CPIAUCSL)
- Added urllib.parse.quote to encode series IDs - Fixes 404 errors when fetching series like FRED/CPIAUCSL - Series IDs with slashes now properly encoded as FRED%2FCPIAUCSL
1 parent 3ba9bf5 commit f103f5e

3 files changed

Lines changed: 8 additions & 4 deletions

File tree

datasetiq/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
- Pricing: https://www.datasetiq.com/pricing
2222
"""
2323

24-
__version__ = "0.1.1"
24+
__version__ = "0.1.2"
2525

2626
# Public API exports
2727
from .client import get, search

datasetiq/client.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import time
1414
from typing import Optional
1515
from importlib.metadata import version
16+
from urllib.parse import quote
1617

1718
import pandas as pd
1819
import requests
@@ -338,15 +339,18 @@ def get(
338339
if end:
339340
params["end"] = end
340341

342+
# URL-encode series ID to handle slashes (e.g., "FRED/CPIAUCSL" -> "FRED%2FCPIAUCSL")
343+
encoded_series_id = quote(series_id, safe='')
344+
341345
# Choose path: CSV (auth) or JSON (anon)
342346
if config.api_key:
343347
# Path A: Authenticated CSV export
344-
url = f"{config.base_url}/series/{series_id}/csv"
348+
url = f"{config.base_url}/series/{encoded_series_id}/csv"
345349
response = _make_request_with_retry("GET", url, headers=headers, params=params)
346350
df = _parse_csv_to_dataframe(response.text, dropna=dropna)
347351
else:
348352
# Path B: Anonymous paginated JSON
349-
url = f"{config.base_url}/series/{series_id}/data"
353+
url = f"{config.base_url}/series/{encoded_series_id}/data"
350354
params["limit"] = 100 # Anonymous limit
351355

352356
all_data = []

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "datasetiq"
7-
version = "0.1.1"
7+
version = "0.1.2"
88
description = "Official Python client for DataSetIQ — The Modern Economic Data Platform"
99
readme = "README.md"
1010
requires-python = ">=3.9"

0 commit comments

Comments
 (0)