1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
|
%global _empty_manifest_terminate_build 0
Name: python-openue
Version: 0.2.5
Release: 1
Summary: An open toolkit of universal extraction from text.
License: MIT License
URL: https://github.com/zjunlp/openue
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/76/b5/4566a40df559b0a30b31affc8317cff9a38aaf70eb22c69a2e5bb7fd621e/openue-0.2.5.tar.gz
BuildArch: noarch
Requires: python3-jsonlines
Requires: python3-tqdm
Requires: python3-wandb
Requires: python3-packaging
Requires: python3-numpy
Requires: python3-tensorboard
Requires: python3-pytorch-lightning
Requires: python3-transformers
Requires: python3-dataclasses
Requires: python3-PyYAML
Requires: python3-tensorboardX
Requires: python3-textbrewer
Requires: python3-ts
%description
[**中文说明**](https://github.com/zjunlp/OpenUE/blob/main/README.md) | [**English**](https://github.com/zjunlp/OpenUE/blob/main/README_EN.md)
<p align="center">
<a href="https://github.com/zjunlp/openue"> <img src="https://github.com/zjunlp/OpenUE/blob/main/imgs/logo.png" width="400"/></a>
</p>
<p align="center">
<strong> OpenUE is a lightweight toolkit for knowledge graph extraction.
</strong>
</p>
<p align="center">
<a href="https://badge.fury.io/py/openue">
<img src="https://badge.fury.io/py/openue.svg">
</a>
<a href="https://github.com/zjunlp/OpenUE/blob/main/LICENSE">
<img alt="GitHub" src="https://img.shields.io/github/license/zjunlp/openue.svg?color=green">
</a>
<a href="http://openue.top">
<img alt="Documentation" src="https://img.shields.io/website/http/huggingface.co/transformers/index.html.svg?down_color=red&down_message=offline&up_message=online">
</a>
</p>
[OpenUE](https://aclanthology.org/2020.emnlp-demos.1/) 是一个轻量级知识图谱抽取工具。
**特点**
- 基于预训练语言模型的知识图谱抽取任务 (兼容BERT, Roberta等预训练模型.)
- 实体关系抽取
- 事件抽取
- 槽位和意图抽取
- <em> 更多的任务 </em>
- 训练和测试接口
- 快速部署NLP模型
## 环境
- python3.8
- requirements.txt
## 框架图

其中主要分为三个模块,`models`,`lit_models`和`data`模块。
### models 模块
其存放了我们主要的三个模型,针对整句的关系识别模型,针对已知句中关系的命名实体识别模型,还有将前两者整合起来的推理验证模型。其主要源自`transformers`库中的已定义好的预训练模型。
### lit_models 模块
其中的代码主要继承自`pytorch_lightning.Trainer`。其可以自动构建单卡,多卡,GPU,TPU等不同硬件下的模型训练。我们在其中定义了`training_steps`和`validation_step`即可自动构建训练逻辑进行训练。
由于其硬件不敏感,所以我们可以使用多种不同环境下调用OpenUE训练模块。
### data 模块
`data`中存放了针对不同数据集进行不同操作的代码。使用了`transformers`库中的`tokenizer`先对数据进行分词处理再根据不同需要将数据变成我们需要的features。
## 快速开始
### 安装
#### Anaconda 环境
```
conda create -n openue python=3.8
conda activate openue
pip install -r requirements.txt
conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c nvidia # 视自己Nvidia驱动环境选择对应的cudatoolkit版本
python setup.py install
```
#### pip安装
```shell
pip install openue
```
#### pip本地开发
```shell
python setup.py develop
```
#### 使用方式
数据格式为`json`文件,具体例子如下。
```json
{
"text": "查尔斯·阿兰基斯(Charles Aránguiz),1989年4月17日出生于智利圣地亚哥,智利职业足球运动员,司职中场,效力于德国足球甲级联赛勒沃库森足球俱乐部",
"spo_list": [{
"predicate": "出生地",
"object_type": "地点",
"subject_type": "人物",
"object": "圣地亚哥",
"subject": "查尔斯·阿兰基斯"
}, {
"predicate": "出生日期",
"object_type": "Date",
"subject_type": "人物",
"object": "1989年4月17日",
"subject": "查尔斯·阿兰基斯"
}]
}
```
### 训练模型
将数据存放在`./dataset/`目录下之后进行训练。如目录为空,运行以下脚本,将自动下载数据集和预训练模型并开始训练,过程中请保持网络畅通以免模型和数据下载失败。
```shell
# 训练NER命名实体识别模块
./scripts/run_ner.sh
# 训练SEQ句中关系分类模块
./scripts/run_seq.sh
```
下面使用一个小demo简要展示训练过程,其中仅训练一个batch来加速展示。

### 验证模型
由于我们使用pipeline模型,所以无法联合训练,需要分别训练后进行统一验证。 在运行了两个训练脚本后,在`output`路径下会得到两个模型权重`output/ner/${dataset}`以及`output/seq/${dataset}`根据不同数据集放在对应的目录中。将模型权重目录分别作为`ner_model_name_or_path`和`seq_model_name_or_path`输入到 `run_infer.yaml`或者是`run_infer.sh`运行脚本中,即可进行验证。
### Notebook快速开始
[ske数据集训练notebook](https://github.com/zjunlp/OpenUE/blob/pytorch/ske.ipynb)
使用中文数据集作为例子具体介绍了如何使用openue中的`lit_models`,`models`和`data`。方便用户构建自己的训练逻辑。
[](https://colab.research.google.com/drive/1VNhFYcqDbXl1b3HzU8sc-NgbhV2ZyYzW?usp=sharing)
使用colab云端环境,无需配置环境。
<!--  -->
### 支持自动调参(wandb)
```python
# 在代码中将logger 部分替换成wandb logger即可支持wandb
logger = pl.loggers.WandbLogger(project="openue")
```
## 快速部署模型
### 下载torchserve-docker
[docker下载](https://github.com/pytorch/serve/blob/master/docker/README.md)
### 创建模型对应的handler类
我们已经在`deploy`文件夹下放置了对应的部署类`handler_seq.py`和`handler_ner.py`。
```shell
# 使用torch-model-archiver 将模型文件进行打包,其中
# extra-files需要加入以下文件
# config.json, setup_config.json 针对模型和推理的配置config。
# vocab.txt : 分词器tokenizer所使用的字典
# model.py : 模型具体代码
torch-model-archiver --model-name BERTForNER_en \
--version 1.0 --serialized-file ./ner_en/pytorch_model.bin \
--handler ./deploy/handler.py \
--extra-files "./ner_en/config.json,./ner_en/setup_config.json,./ner_en/vocab.txt,./deploy/model.py" -f
# 将打包好的.mar文件加入到model-store文件夹下,并使用curl命令将打包的文件部署到docker中。
sudo cp ./BERTForSEQ_en.mar /home/model-server/model-store/
curl -v -X POST "http://localhost:3001/models?initial_workers=1&synchronous=false&url=BERTForSEQ_en.mar&batch_size=1&max_batch_delay=200"
```
## 项目成员
浙江大学:张宁豫、谢辛、毕祯、王泽元、陈想、余海阳、邓淑敏、叶宏彬、田玺、郑国轴、陈华钧
达摩院:陈漠沙、谭传奇、黄非
<br>
## 引用
如果您使用或扩展我们的工作,请引用以下文章:
```
@inproceedings{zhang-2020-opennue,
title = "{O}pe{UE}: An Open Toolkit of Universal Extraction from Text",
author = "Ningyu Zhang, Shumin Deng, Zhen Bi, Haiyang Yu, Jiacheng Yang, Mosha Chen, Fei Huang, Wei Zhang, Huajun Chen",
year = "2020",
}
```
%package -n python3-openue
Summary: An open toolkit of universal extraction from text.
Provides: python-openue
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-openue
[**中文说明**](https://github.com/zjunlp/OpenUE/blob/main/README.md) | [**English**](https://github.com/zjunlp/OpenUE/blob/main/README_EN.md)
<p align="center">
<a href="https://github.com/zjunlp/openue"> <img src="https://github.com/zjunlp/OpenUE/blob/main/imgs/logo.png" width="400"/></a>
</p>
<p align="center">
<strong> OpenUE is a lightweight toolkit for knowledge graph extraction.
</strong>
</p>
<p align="center">
<a href="https://badge.fury.io/py/openue">
<img src="https://badge.fury.io/py/openue.svg">
</a>
<a href="https://github.com/zjunlp/OpenUE/blob/main/LICENSE">
<img alt="GitHub" src="https://img.shields.io/github/license/zjunlp/openue.svg?color=green">
</a>
<a href="http://openue.top">
<img alt="Documentation" src="https://img.shields.io/website/http/huggingface.co/transformers/index.html.svg?down_color=red&down_message=offline&up_message=online">
</a>
</p>
[OpenUE](https://aclanthology.org/2020.emnlp-demos.1/) 是一个轻量级知识图谱抽取工具。
**特点**
- 基于预训练语言模型的知识图谱抽取任务 (兼容BERT, Roberta等预训练模型.)
- 实体关系抽取
- 事件抽取
- 槽位和意图抽取
- <em> 更多的任务 </em>
- 训练和测试接口
- 快速部署NLP模型
## 环境
- python3.8
- requirements.txt
## 框架图

其中主要分为三个模块,`models`,`lit_models`和`data`模块。
### models 模块
其存放了我们主要的三个模型,针对整句的关系识别模型,针对已知句中关系的命名实体识别模型,还有将前两者整合起来的推理验证模型。其主要源自`transformers`库中的已定义好的预训练模型。
### lit_models 模块
其中的代码主要继承自`pytorch_lightning.Trainer`。其可以自动构建单卡,多卡,GPU,TPU等不同硬件下的模型训练。我们在其中定义了`training_steps`和`validation_step`即可自动构建训练逻辑进行训练。
由于其硬件不敏感,所以我们可以使用多种不同环境下调用OpenUE训练模块。
### data 模块
`data`中存放了针对不同数据集进行不同操作的代码。使用了`transformers`库中的`tokenizer`先对数据进行分词处理再根据不同需要将数据变成我们需要的features。
## 快速开始
### 安装
#### Anaconda 环境
```
conda create -n openue python=3.8
conda activate openue
pip install -r requirements.txt
conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c nvidia # 视自己Nvidia驱动环境选择对应的cudatoolkit版本
python setup.py install
```
#### pip安装
```shell
pip install openue
```
#### pip本地开发
```shell
python setup.py develop
```
#### 使用方式
数据格式为`json`文件,具体例子如下。
```json
{
"text": "查尔斯·阿兰基斯(Charles Aránguiz),1989年4月17日出生于智利圣地亚哥,智利职业足球运动员,司职中场,效力于德国足球甲级联赛勒沃库森足球俱乐部",
"spo_list": [{
"predicate": "出生地",
"object_type": "地点",
"subject_type": "人物",
"object": "圣地亚哥",
"subject": "查尔斯·阿兰基斯"
}, {
"predicate": "出生日期",
"object_type": "Date",
"subject_type": "人物",
"object": "1989年4月17日",
"subject": "查尔斯·阿兰基斯"
}]
}
```
### 训练模型
将数据存放在`./dataset/`目录下之后进行训练。如目录为空,运行以下脚本,将自动下载数据集和预训练模型并开始训练,过程中请保持网络畅通以免模型和数据下载失败。
```shell
# 训练NER命名实体识别模块
./scripts/run_ner.sh
# 训练SEQ句中关系分类模块
./scripts/run_seq.sh
```
下面使用一个小demo简要展示训练过程,其中仅训练一个batch来加速展示。

### 验证模型
由于我们使用pipeline模型,所以无法联合训练,需要分别训练后进行统一验证。 在运行了两个训练脚本后,在`output`路径下会得到两个模型权重`output/ner/${dataset}`以及`output/seq/${dataset}`根据不同数据集放在对应的目录中。将模型权重目录分别作为`ner_model_name_or_path`和`seq_model_name_or_path`输入到 `run_infer.yaml`或者是`run_infer.sh`运行脚本中,即可进行验证。
### Notebook快速开始
[ske数据集训练notebook](https://github.com/zjunlp/OpenUE/blob/pytorch/ske.ipynb)
使用中文数据集作为例子具体介绍了如何使用openue中的`lit_models`,`models`和`data`。方便用户构建自己的训练逻辑。
[](https://colab.research.google.com/drive/1VNhFYcqDbXl1b3HzU8sc-NgbhV2ZyYzW?usp=sharing)
使用colab云端环境,无需配置环境。
<!--  -->
### 支持自动调参(wandb)
```python
# 在代码中将logger 部分替换成wandb logger即可支持wandb
logger = pl.loggers.WandbLogger(project="openue")
```
## 快速部署模型
### 下载torchserve-docker
[docker下载](https://github.com/pytorch/serve/blob/master/docker/README.md)
### 创建模型对应的handler类
我们已经在`deploy`文件夹下放置了对应的部署类`handler_seq.py`和`handler_ner.py`。
```shell
# 使用torch-model-archiver 将模型文件进行打包,其中
# extra-files需要加入以下文件
# config.json, setup_config.json 针对模型和推理的配置config。
# vocab.txt : 分词器tokenizer所使用的字典
# model.py : 模型具体代码
torch-model-archiver --model-name BERTForNER_en \
--version 1.0 --serialized-file ./ner_en/pytorch_model.bin \
--handler ./deploy/handler.py \
--extra-files "./ner_en/config.json,./ner_en/setup_config.json,./ner_en/vocab.txt,./deploy/model.py" -f
# 将打包好的.mar文件加入到model-store文件夹下,并使用curl命令将打包的文件部署到docker中。
sudo cp ./BERTForSEQ_en.mar /home/model-server/model-store/
curl -v -X POST "http://localhost:3001/models?initial_workers=1&synchronous=false&url=BERTForSEQ_en.mar&batch_size=1&max_batch_delay=200"
```
## 项目成员
浙江大学:张宁豫、谢辛、毕祯、王泽元、陈想、余海阳、邓淑敏、叶宏彬、田玺、郑国轴、陈华钧
达摩院:陈漠沙、谭传奇、黄非
<br>
## 引用
如果您使用或扩展我们的工作,请引用以下文章:
```
@inproceedings{zhang-2020-opennue,
title = "{O}pe{UE}: An Open Toolkit of Universal Extraction from Text",
author = "Ningyu Zhang, Shumin Deng, Zhen Bi, Haiyang Yu, Jiacheng Yang, Mosha Chen, Fei Huang, Wei Zhang, Huajun Chen",
year = "2020",
}
```
%package help
Summary: Development documents and examples for openue
Provides: python3-openue-doc
%description help
[**中文说明**](https://github.com/zjunlp/OpenUE/blob/main/README.md) | [**English**](https://github.com/zjunlp/OpenUE/blob/main/README_EN.md)
<p align="center">
<a href="https://github.com/zjunlp/openue"> <img src="https://github.com/zjunlp/OpenUE/blob/main/imgs/logo.png" width="400"/></a>
</p>
<p align="center">
<strong> OpenUE is a lightweight toolkit for knowledge graph extraction.
</strong>
</p>
<p align="center">
<a href="https://badge.fury.io/py/openue">
<img src="https://badge.fury.io/py/openue.svg">
</a>
<a href="https://github.com/zjunlp/OpenUE/blob/main/LICENSE">
<img alt="GitHub" src="https://img.shields.io/github/license/zjunlp/openue.svg?color=green">
</a>
<a href="http://openue.top">
<img alt="Documentation" src="https://img.shields.io/website/http/huggingface.co/transformers/index.html.svg?down_color=red&down_message=offline&up_message=online">
</a>
</p>
[OpenUE](https://aclanthology.org/2020.emnlp-demos.1/) 是一个轻量级知识图谱抽取工具。
**特点**
- 基于预训练语言模型的知识图谱抽取任务 (兼容BERT, Roberta等预训练模型.)
- 实体关系抽取
- 事件抽取
- 槽位和意图抽取
- <em> 更多的任务 </em>
- 训练和测试接口
- 快速部署NLP模型
## 环境
- python3.8
- requirements.txt
## 框架图

其中主要分为三个模块,`models`,`lit_models`和`data`模块。
### models 模块
其存放了我们主要的三个模型,针对整句的关系识别模型,针对已知句中关系的命名实体识别模型,还有将前两者整合起来的推理验证模型。其主要源自`transformers`库中的已定义好的预训练模型。
### lit_models 模块
其中的代码主要继承自`pytorch_lightning.Trainer`。其可以自动构建单卡,多卡,GPU,TPU等不同硬件下的模型训练。我们在其中定义了`training_steps`和`validation_step`即可自动构建训练逻辑进行训练。
由于其硬件不敏感,所以我们可以使用多种不同环境下调用OpenUE训练模块。
### data 模块
`data`中存放了针对不同数据集进行不同操作的代码。使用了`transformers`库中的`tokenizer`先对数据进行分词处理再根据不同需要将数据变成我们需要的features。
## 快速开始
### 安装
#### Anaconda 环境
```
conda create -n openue python=3.8
conda activate openue
pip install -r requirements.txt
conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c nvidia # 视自己Nvidia驱动环境选择对应的cudatoolkit版本
python setup.py install
```
#### pip安装
```shell
pip install openue
```
#### pip本地开发
```shell
python setup.py develop
```
#### 使用方式
数据格式为`json`文件,具体例子如下。
```json
{
"text": "查尔斯·阿兰基斯(Charles Aránguiz),1989年4月17日出生于智利圣地亚哥,智利职业足球运动员,司职中场,效力于德国足球甲级联赛勒沃库森足球俱乐部",
"spo_list": [{
"predicate": "出生地",
"object_type": "地点",
"subject_type": "人物",
"object": "圣地亚哥",
"subject": "查尔斯·阿兰基斯"
}, {
"predicate": "出生日期",
"object_type": "Date",
"subject_type": "人物",
"object": "1989年4月17日",
"subject": "查尔斯·阿兰基斯"
}]
}
```
### 训练模型
将数据存放在`./dataset/`目录下之后进行训练。如目录为空,运行以下脚本,将自动下载数据集和预训练模型并开始训练,过程中请保持网络畅通以免模型和数据下载失败。
```shell
# 训练NER命名实体识别模块
./scripts/run_ner.sh
# 训练SEQ句中关系分类模块
./scripts/run_seq.sh
```
下面使用一个小demo简要展示训练过程,其中仅训练一个batch来加速展示。

### 验证模型
由于我们使用pipeline模型,所以无法联合训练,需要分别训练后进行统一验证。 在运行了两个训练脚本后,在`output`路径下会得到两个模型权重`output/ner/${dataset}`以及`output/seq/${dataset}`根据不同数据集放在对应的目录中。将模型权重目录分别作为`ner_model_name_or_path`和`seq_model_name_or_path`输入到 `run_infer.yaml`或者是`run_infer.sh`运行脚本中,即可进行验证。
### Notebook快速开始
[ske数据集训练notebook](https://github.com/zjunlp/OpenUE/blob/pytorch/ske.ipynb)
使用中文数据集作为例子具体介绍了如何使用openue中的`lit_models`,`models`和`data`。方便用户构建自己的训练逻辑。
[](https://colab.research.google.com/drive/1VNhFYcqDbXl1b3HzU8sc-NgbhV2ZyYzW?usp=sharing)
使用colab云端环境,无需配置环境。
<!--  -->
### 支持自动调参(wandb)
```python
# 在代码中将logger 部分替换成wandb logger即可支持wandb
logger = pl.loggers.WandbLogger(project="openue")
```
## 快速部署模型
### 下载torchserve-docker
[docker下载](https://github.com/pytorch/serve/blob/master/docker/README.md)
### 创建模型对应的handler类
我们已经在`deploy`文件夹下放置了对应的部署类`handler_seq.py`和`handler_ner.py`。
```shell
# 使用torch-model-archiver 将模型文件进行打包,其中
# extra-files需要加入以下文件
# config.json, setup_config.json 针对模型和推理的配置config。
# vocab.txt : 分词器tokenizer所使用的字典
# model.py : 模型具体代码
torch-model-archiver --model-name BERTForNER_en \
--version 1.0 --serialized-file ./ner_en/pytorch_model.bin \
--handler ./deploy/handler.py \
--extra-files "./ner_en/config.json,./ner_en/setup_config.json,./ner_en/vocab.txt,./deploy/model.py" -f
# 将打包好的.mar文件加入到model-store文件夹下,并使用curl命令将打包的文件部署到docker中。
sudo cp ./BERTForSEQ_en.mar /home/model-server/model-store/
curl -v -X POST "http://localhost:3001/models?initial_workers=1&synchronous=false&url=BERTForSEQ_en.mar&batch_size=1&max_batch_delay=200"
```
## 项目成员
浙江大学:张宁豫、谢辛、毕祯、王泽元、陈想、余海阳、邓淑敏、叶宏彬、田玺、郑国轴、陈华钧
达摩院:陈漠沙、谭传奇、黄非
<br>
## 引用
如果您使用或扩展我们的工作,请引用以下文章:
```
@inproceedings{zhang-2020-opennue,
title = "{O}pe{UE}: An Open Toolkit of Universal Extraction from Text",
author = "Ningyu Zhang, Shumin Deng, Zhen Bi, Haiyang Yu, Jiacheng Yang, Mosha Chen, Fei Huang, Wei Zhang, Huajun Chen",
year = "2020",
}
```
%prep
%autosetup -n openue-0.2.5
%build
%py3_build
%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .
%files -n python3-openue -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.2.5-1
- Package Spec generated
|