跳转到主要内容

Intake插件,用于指定表示多个不同条目的文件路径模式

项目描述

Intake Pattern Catalog

Available on pypi

intake-pattern-catalog是Intake的一个插件,允许您指定一个文件路径模式,它可以代表多个不同的条目。

请注意,这与您可以使用csv驱动程序编写的模式不同,这些模式会被转换成单个条目

安装说明

pip install intake-pattern-catalog
# or
conda install intake-pattern-catalog

用法

使用driver: pattern_cat在您的目录中使用此驱动程序。

考虑以下S3存储桶中的文件列表

  • bucket-name/folder/a_1.csv
  • bucket-name/folder/b_1.csv
  • bucket-name/folder/c_1.csv
  • bucket-name/folder/a_2.csv
  • bucket-name/folder/b_2.csv

以及以下目录定义yaml文件

---
metadata:
  version: 1
sources:
  stuff:
    description: Stuff and things
    driver: pattern_cat
    args:
      urlpath: "s3://bucket-name/folder/{foo}_{bar}.csv"
      driver: csv

派生数据集

如果您想根据pattern_cat数据集创建派生数据集,您可以使用driver: pattern_cat_transform,它将对get_entry返回的每个条目应用转换函数。例如,您可以在上述yaml文件中添加以下内容

  stuff_transformed:
    description: Everything in stuff, doubled
    driver: pattern_cat_transform
    args:
      targets:
        - stuff
      transform: "path.to.doubling_function"

目录API

通过kwargs访问条目

> catalog.stuff.get_entry(foo='a', bar=1)
sources:
  foo_a_bar_1:
    args:
      storage_options:
        use_listings_cache: false
      urlpath: s3://bucket-name/folder/a_1.csv
    description: ''
    driver: intake.source.csv.CSVSource
    metadata:
      catalog_dir: ...

请注意,这也可以通过catalog.stuff.foo_a_bar_1访问

查看所有有效的kwargs组合

> catalog.stuff.get_entry_kwarg_sets()
[
    {"foo": "a", "bar": "1"},
    {"foo": "b", "bar": "1"},
    {"foo": "c", "bar": "1"},
    {"foo": "a", "bar": "2"},
    {"foo": "b", "bar": "2"},
]

缓存

使用模式目录控制缓存的默认方式是使用ttl(秒),这是在args下的一个可选值,用于指定在获取到匹配模式的文件列表之后等待多长时间再次加载它们。默认的ttl是60秒。如果您想强制它始终获取最新列表,请将ttl设置为0。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源分布

intake-pattern-catalog-2023.3.0.tar.gz (26.0 kB 查看哈希值

上传时间

构建分布

intake_pattern_catalog-2023.3.0-py3-none-any.whl (7.5 kB 查看哈希值

上传时间 Python 3

由以下组织支持