数据的包管理命令。
项目描述
# infinity-data
这是一个简单的包,可以帮助读取 Infinity 数据格式并获取这种格式的数据。
## 快速入门
### 获取数据
只需`pip install infdata`,然后开始获取数据。
例如,
```
$ inf pull example.com/posts==crawler-1.0.0
```
会从 `example.com/posts`, `crawler-1.0.0` 版本中提取帖子记录。
### 发布数据
```
$ int init # 启动文件夹 .inf/
$ inf login # 将令牌保存到 .inf/config
$ inf search example.com/posts # 搜索数据集版本
$ inf push file.json # 上传 Infinity JSON 或 JSON-L 数据到指定的无限服务器
```
**注意:** 标记 `['example.com/posts', 'crawler-1.0.0']` 共同定义了一个独特的 `[source-specific, crawler-specific]` 架构。
# Infinity JSON
Infinity JSON 格式包括一个标题行,它指定其记录的模式 (`[S]`) 和类型 (`[T]`)。
示例:
```
[
{'':[[S],[T],'x':[[S],[T]],'y':[{'':[[S],[T] ], 'z': [[S],[T]]}]},
{'x': '1,330.98', 'y': [{'z': 1}, {'u': 2}]} ,
{'x': '2,011.19', 'y': [{'z': 4}, {'u': 3}]},
]
```
空字符串键 `'' 的模式、类型规范
这样,如果我们想指定 `x` 必须转换为 `float`,并且表示 [elevation](https://www.wikidata.org/wiki/Q2633778),我们可以这样做:
` ``
[
{'':[],'x':{'':[['str'],['https://www.wikidata.org/wiki/Q2633778']]}},
{'x' : '1,330.98', 'y': [{'z': 1}, {'u': 2}]},
{'x': '2,011.19', 'y': [{'z': 4}, {'u': 3}]},
]
```
如果要额外添加转换规则,可以在最终类型后面加上 lambda 表达式:
```
[
{'': [], 'x': { '': [['float', "lambda x: x.replace(',','')"],['https://www.wikidata.org/wiki/Q2633778']]}},
{'x': '1,330.98', 'y': [{'z': 1}, {'u': 2}]},
{'x': '2,011.19', 'y': [{'z': 4}, {'u': 3}]},
]
```
] ``` # Infinity CSV有时我们想在 CSV 中包含模式和类型(`S`, `T`)。在这种情况下,我们使用 `|` 来分隔它们:``` Column Name|S|T, ```
例如:
```
Name||,Surname||,
```
如果我们想强制执行一些规则,我们可以这样做:
```
Name|str|https://www.wikidata.org/wiki/Q82799 ,姓|str,lambda x: x[:10]|https://www.wikidata.org/wiki/Q101352,
```
这是一个简单的包,可以帮助读取 Infinity 数据格式并获取这种格式的数据。
## 快速入门
### 获取数据
只需`pip install infdata`,然后开始获取数据。
例如,
```
$ inf pull example.com/posts==crawler-1.0.0
```
会从 `example.com/posts`, `crawler-1.0.0` 版本中提取帖子记录。
### 发布数据
```
$ int init # 启动文件夹 .inf/
$ inf login # 将令牌保存到 .inf/config
$ inf search example.com/posts # 搜索数据集版本
$ inf push file.json # 上传 Infinity JSON 或 JSON-L 数据到指定的无限服务器
```
**注意:** 标记 `['example.com/posts', 'crawler-1.0.0']` 共同定义了一个独特的 `[source-specific, crawler-specific]` 架构。
# Infinity JSON
Infinity JSON 格式包括一个标题行,它指定其记录的模式 (`[S]`) 和类型 (`[T]`)。
示例:
```
[
{'':[[S],[T],'x':[[S],[T]],'y':[{'':[[S],[T] ], 'z': [[S],[T]]}]},
{'x': '1,330.98', 'y': [{'z': 1}, {'u': 2}]} ,
{'x': '2,011.19', 'y': [{'z': 4}, {'u': 3}]},
]
```
空字符串键 `'' 的模式、类型规范
这样,如果我们想指定 `x` 必须转换为 `float`,并且表示 [elevation](https://www.wikidata.org/wiki/Q2633778),我们可以这样做:
` ``
[
{'':[],'x':{'':[['str'],['https://www.wikidata.org/wiki/Q2633778']]}},
{'x' : '1,330.98', 'y': [{'z': 1}, {'u': 2}]},
{'x': '2,011.19', 'y': [{'z': 4}, {'u': 3}]},
]
```
如果要额外添加转换规则,可以在最终类型后面加上 lambda 表达式:
```
[
{'': [], 'x': { '': [['float', "lambda x: x.replace(',','')"],['https://www.wikidata.org/wiki/Q2633778']]}},
{'x': '1,330.98', 'y': [{'z': 1}, {'u': 2}]},
{'x': '2,011.19', 'y': [{'z': 4}, {'u': 3}]},
]
```
] ``` # Infinity CSV有时我们想在 CSV 中包含模式和类型(`S`, `T`)。在这种情况下,我们使用 `|` 来分隔它们:``` Column Name|S|T, ```
例如:
```
Name||,Surname||,
```
如果我们想强制执行一些规则,我们可以这样做:
```
Name|str|https://www.wikidata.org/wiki/Q82799 ,姓|str,lambda x: x[:10]|https://www.wikidata.org/wiki/Q101352,
```