|  | 
| 1 | 1 | import pathlib | 
| 2 | 2 | 
 | 
| 3 |  | -import requests | 
| 4 | 3 | from loguru import logger | 
| 5 | 4 | 
 | 
| 6 |  | -# REST_API_SOURCE_LOCATION from config might resolve to site-packages. | 
| 7 |  | -# For this script, we explicitly want to write into the source tree. | 
| 8 |  | -# Assuming this script is in dlt_init_openapi/utils/update_rest_api.py | 
| 9 |  | -# The target is dlt_init_openapi/dlt_init_openapi/rest_api/ | 
| 10 |  | -SCRIPT_DIR = pathlib.Path(__file__).parent.resolve() | 
| 11 |  | -# Target path: dlt_init_openapi/dlt_init_openapi/rest_api/ | 
| 12 |  | -VENDOR_PATH = SCRIPT_DIR.parent / "rest_api" | 
| 13 |  | - | 
| 14 |  | -BASEPATH = "https://raw.githubusercontent.com/dlt-hub/verified-sources/master/sources/rest_api/" | 
| 15 |  | -FILES = ["__init__.py", "requirements.txt"] | 
| 16 |  | - | 
| 17 | 5 | 
 | 
| 18 | 6 | def update_rest_api(force: bool = False) -> None: | 
| 19 |  | -    """updates local rest api""" | 
| 20 |  | -    logger.info("Syncing rest_api verified source") | 
| 21 |  | - | 
| 22 |  | -    # Use the locally determined VENDOR_PATH for file operations | 
| 23 |  | -    path = VENDOR_PATH | 
| 24 |  | -    logger.info(f"Target absolute path for rest_api (script-determined): {path}") | 
| 25 |  | - | 
| 26 |  | -    path.mkdir(parents=True, exist_ok=True) | 
| 27 |  | -    for file in FILES: | 
| 28 |  | -        src_path = BASEPATH + file | 
| 29 |  | -        dst_file_path = path / file | 
| 30 |  | -        logger.info(f"Copying {src_path} to {dst_file_path}") | 
| 31 |  | -        with requests.get(src_path, stream=True) as r: | 
| 32 |  | -            r.raise_for_status() | 
| 33 |  | -            with open(dst_file_path, "wb") as f: | 
| 34 |  | -                for chunk in r.iter_content(chunk_size=8192): | 
| 35 |  | -                    f.write(chunk) | 
| 36 |  | -    logger.success("rest_api verified source synced") | 
|  | 7 | +    """ | 
|  | 8 | +    This function is kept for backwards compatibility. | 
|  | 9 | +    In dlt >=1.0.0, rest_api is part of the main package. | 
|  | 10 | +    No need to vendor the files separately. | 
|  | 11 | +    """ | 
|  | 12 | +    logger.info("Using built-in dlt.sources.rest_api (dlt >=1.11.0)") | 
|  | 13 | +    # Create an empty rest_api directory to maintain compatibility | 
|  | 14 | +    script_dir = pathlib.Path(__file__).parent.resolve() | 
|  | 15 | +    vendor_path = script_dir.parent / "rest_api" | 
|  | 16 | +    vendor_path.mkdir(parents=True, exist_ok=True) | 
|  | 17 | +    # Create empty __init__.py to make it a proper package | 
|  | 18 | +    init_file = vendor_path / "__init__.py" | 
|  | 19 | +    if not init_file.exists(): | 
|  | 20 | +        with open(init_file, "w") as f: | 
|  | 21 | +            f.write("# This is a compatibility package. Use dlt.sources.rest_api instead.\n") | 
| 37 | 22 | 
 | 
| 38 | 23 | 
 | 
| 39 | 24 | if __name__ == "__main__": | 
|  | 
0 commit comments