一个用于控制ESS kafkatonexus文件编写器的小型Python库。
file-writer-control的Python项目详细描述
文件编写器控件
这是一个用于控制ESS HDF5/NeXus file-writer application的小库。文件编写器是通过apachekafka代理向其发送命令来控制的。该库实现了命令的编码/解码以及该接口的抽象,以简化命令和控制。在
入门
关于这个库的用法的文档可以在这个存储库根目录下的examples目录中找到。要开始使用,请查看以下代码片段:
fromfile_writer_control.WorkerCommandChannelimportWorkerCommandChannelfromfile_writer_control.WriteJobimportWriteJobfromfile_writer_control.JobHandlerimportJobHandlerfromdatetimeimportdatetime,timedeltaimporttimecommand_channel=WorkerCommandChannel("dmsc-kafka01:9092/command_topic")job_handler=JobHandler(worker_finder=command_channel)write_job=WriteJob(nexus_structure="{...}","file.nxs","dmsc-kafka01:9092",datetime.now())start_handler=job_handler.start_job(write_job)whilenotstart_handler.is_done():time.sleep(1)stop_handler=job_handler.set_stop_time(datetime.now()+timedelta(seconds=60))whilenotstop_handler.is_done():time.sleep(1)whilenotwrite_job.is_done():time.sleep(1)print("Write job is done")
正在安装依赖项
这个库使用kafka-python库与Kafka代理进行通信,python-streaming-data-types用于序列化和反序列化与filewriter之间的消息。可以通过在存储库的根目录下执行以下命令来安装这些依赖项:
^{pr2}$或者,要安装仅对当前用户可用的依赖项,请执行以下命令:
pip install --user -r requirements.txt
注意:在撰写本文时,此库所需的python流数据类型库版本尚未发布。如果要使用此库,则必须手动(并在本地)安装该库的filewriter\uctrl分支。在
另请注意:这个库是使用Python3.8开发的,但它很可能可以与Python3.6及更高版本一起使用。在
运行单元测试
要运行单元测试,请在此存储库的根目录下执行以下命令:
python -m pytest -s .
在本地安装开发版本
首先,卸载此库的所有现有版本:
pip uninstall file-writer-control
然后,从file writer control根目录运行以下命令:
pip install --user -e ./
- 项目
标签: