| Name | shihua-cask JSON |
| Version |
0.1
JSON |
| download |
| home_page | https://github.com/redblue0216/Cask |
| Summary | Cash is a storage management tool, including project packaging and remote storage. |
| upload_time | 2023-03-14 10:17:50 |
| maintainer | |
| docs_url | None |
| author | shihua |
| requires_python | >=3.9.12 |
| license | MIT |
| keywords |
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# Cask-存储管理工具
   

## 介绍
+ cask是一个存储管理工具,主要功能包括项目本地打包,远端存储管理两大功能,主要设计仿制wheel文件格式,远端存储采用MinIO技术。
## 安装
cask采用Python开发,得益于Python良好的社区环境,安装支持Pythonic风格的各种管理器。
```
$ pip install cask-0.1-xxxxxxxxxxxx.whl
```
## 快速指南
### python-sdk使用
+ cask提供python-sdk的存储管理,以下是cask主程脚本示例::
```python
from cask import create_cask_workspace,generate_cask_package,install_caskpkg,seriallize,deseriallize
from cask.package import Caskpkg
from cask.store import CaskStore
### 创建cask工作空间,生成.cask隐藏文件夹
# create_cask_workspace()
### 生成cask包
# generate_cask_package(caskpkg_name='testcask')
### 安装cask包,生成.cask隐藏文件夹
# install_caskpkg(caskpkg_file='testcask.caskpkg')
### 添加object_file到.cask下
# tmp_caskpkg = Caskpkg(objects=['logtest'],scripts=['install_script.sh'],configs=['test.yaml'])
# tmp_caskpkg.commit()
### 初始化cask存储对象
caskstore = CaskStore(endpoint='192.168.1.82:9000')
### 临时函数
def testfunc(a):
return a + 1
### 序列化对象到文件
seriallize(target_object=testfunc,filepath='testfunc.dill')
### 序列化对象
testfunc_bytes_obj = seriallize(target_object=testfunc)
### 上传二进制对象
result = caskstore.push_object(bucket_name='cask',object_name='testfunc',bytes_obj=testfunc_bytes_obj)
print(result)
### 获取二进制对象
tmp_bytes_obj = caskstore.pull_object(bucket_name='cask',object_name='testfunc')
### 反序列化对象
testfunc_bytes_obj_a = deseriallize(target_object=tmp_bytes_obj)
print(testfunc_bytes_obj_a(1))
### 上传文件
result = caskstore.push_file(bucket_name='cask',object_name='testfunc.dill',file_path='testfunc.dill')
print(result)
### 获取文件
caskstore.pull_file(bucket_name='cask',object_name='testfunc.dill',file_path='testfunc.dill')
### 反序列化对象
testfunc_bytes_obj_aaa = deseriallize(filepath='testfunc.dill')
print(testfunc_bytes_obj_aaa(2))
```
### 命令行使用
+ cask提供命令行的存储管理,以下是cask命令行示例:
```bash
$ caskctl create-workspace
$ caskctl generate-package --caskpkg_name testcask
$ caskctl install-package --caskpkg_file testcask.caskpkg
$ caskctl upload-file --endpoint 192.168.1.82:9000 --bucket_name cask --object_name test.yaml --file_path test.yaml
$ caskctl doenload-file --endpoint 192.168.1.82:9000 --bucket_name cask --object_name test.yaml --file_path test.yaml
```
## 设计
+ 仿制wheel格式设计caskpkg打包格式
+ 使用MinIO作为远端存储
+ 支持本地打包和远端存储两大功能
### 技术列表
+ __init__收集基础操作函数
+ __all__暴露指定功能
+ .cask隐藏文件夹
+ yaml配置文件
+ MinIO远端存储
+ Tar压缩包技术
### 设计UML图
以下是设计的UML图:

Raw data
{
"_id": null,
"home_page": "https://github.com/redblue0216/Cask",
"name": "shihua-cask",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9.12",
"maintainer_email": "",
"keywords": "",
"author": "shihua",
"author_email": "15021408795@163.com",
"download_url": "https://files.pythonhosted.org/packages/e5/c9/89f5b974d0d3394a549ced4cbcbf9b2bd20cda4b00648622031cd9a089dd/shihua-cask-0.1.tar.gz",
"platform": null,
"description": "# Cask-\u5b58\u50a8\u7ba1\u7406\u5de5\u5177\n\n   \n\n\n\n## \u4ecb\u7ecd\n+ cask\u662f\u4e00\u4e2a\u5b58\u50a8\u7ba1\u7406\u5de5\u5177\uff0c\u4e3b\u8981\u529f\u80fd\u5305\u62ec\u9879\u76ee\u672c\u5730\u6253\u5305\uff0c\u8fdc\u7aef\u5b58\u50a8\u7ba1\u7406\u4e24\u5927\u529f\u80fd\uff0c\u4e3b\u8981\u8bbe\u8ba1\u4eff\u5236wheel\u6587\u4ef6\u683c\u5f0f\uff0c\u8fdc\u7aef\u5b58\u50a8\u91c7\u7528MinIO\u6280\u672f\u3002\n\n\n## \u5b89\u88c5\ncask\u91c7\u7528Python\u5f00\u53d1\uff0c\u5f97\u76ca\u4e8ePython\u826f\u597d\u7684\u793e\u533a\u73af\u5883\uff0c\u5b89\u88c5\u652f\u6301Pythonic\u98ce\u683c\u7684\u5404\u79cd\u7ba1\u7406\u5668\u3002\n```\n\t$ pip install cask-0.1-xxxxxxxxxxxx.whl\n```\n\n\n## \u5feb\u901f\u6307\u5357\n\n### python-sdk\u4f7f\u7528\n+ cask\u63d0\u4f9bpython-sdk\u7684\u5b58\u50a8\u7ba1\u7406\uff0c\u4ee5\u4e0b\u662fcask\u4e3b\u7a0b\u811a\u672c\u793a\u4f8b\uff1a\uff1a\n\n```python\n\tfrom cask import create_cask_workspace,generate_cask_package,install_caskpkg,seriallize,deseriallize\n\tfrom cask.package import Caskpkg\n\tfrom cask.store import CaskStore\n\n\n\t### \u521b\u5efacask\u5de5\u4f5c\u7a7a\u95f4\uff0c\u751f\u6210.cask\u9690\u85cf\u6587\u4ef6\u5939\n\t# create_cask_workspace()\n\n\n\t### \u751f\u6210cask\u5305\n\t# generate_cask_package(caskpkg_name='testcask')\n\n\n\t### \u5b89\u88c5cask\u5305\uff0c\u751f\u6210.cask\u9690\u85cf\u6587\u4ef6\u5939\n\t# install_caskpkg(caskpkg_file='testcask.caskpkg')\n\n\n\t### \u6dfb\u52a0object_file\u5230.cask\u4e0b\n\t# tmp_caskpkg = Caskpkg(objects=['logtest'],scripts=['install_script.sh'],configs=['test.yaml'])\n\t# tmp_caskpkg.commit()\n\n\n\t### \u521d\u59cb\u5316cask\u5b58\u50a8\u5bf9\u8c61 \n\tcaskstore = CaskStore(endpoint='192.168.1.82:9000')\n\n\n\t### \u4e34\u65f6\u51fd\u6570\n\tdef testfunc(a):\n\t return a + 1\n\n\t### \u5e8f\u5217\u5316\u5bf9\u8c61\u5230\u6587\u4ef6\n\tseriallize(target_object=testfunc,filepath='testfunc.dill')\n\n\n\t### \u5e8f\u5217\u5316\u5bf9\u8c61\n\ttestfunc_bytes_obj = seriallize(target_object=testfunc)\n\n\n\t### \u4e0a\u4f20\u4e8c\u8fdb\u5236\u5bf9\u8c61\n\tresult = caskstore.push_object(bucket_name='cask',object_name='testfunc',bytes_obj=testfunc_bytes_obj)\n\tprint(result)\n\n\n\t### \u83b7\u53d6\u4e8c\u8fdb\u5236\u5bf9\u8c61\n\ttmp_bytes_obj = caskstore.pull_object(bucket_name='cask',object_name='testfunc')\n\n\n\t### \u53cd\u5e8f\u5217\u5316\u5bf9\u8c61\n\ttestfunc_bytes_obj_a = deseriallize(target_object=tmp_bytes_obj)\n\tprint(testfunc_bytes_obj_a(1))\n\n\n\t### \u4e0a\u4f20\u6587\u4ef6\n\tresult = caskstore.push_file(bucket_name='cask',object_name='testfunc.dill',file_path='testfunc.dill')\n\tprint(result)\n\n\n\t### \u83b7\u53d6\u6587\u4ef6\n\tcaskstore.pull_file(bucket_name='cask',object_name='testfunc.dill',file_path='testfunc.dill')\n\n\n\t### \u53cd\u5e8f\u5217\u5316\u5bf9\u8c61\n\ttestfunc_bytes_obj_aaa = deseriallize(filepath='testfunc.dill')\n\tprint(testfunc_bytes_obj_aaa(2))\n```\n\n### \u547d\u4ee4\u884c\u4f7f\u7528\n+ cask\u63d0\u4f9b\u547d\u4ee4\u884c\u7684\u5b58\u50a8\u7ba1\u7406\uff0c\u4ee5\u4e0b\u662fcask\u547d\u4ee4\u884c\u793a\u4f8b\uff1a\n```bash\n\t$ caskctl create-workspace\n\n\t$ caskctl generate-package --caskpkg_name testcask\n\n\t$ caskctl install-package --caskpkg_file testcask.caskpkg\n\n\t$ caskctl upload-file --endpoint 192.168.1.82:9000 --bucket_name cask --object_name test.yaml --file_path test.yaml \n\n\t$ caskctl doenload-file --endpoint 192.168.1.82:9000 --bucket_name cask --object_name test.yaml --file_path test.yaml\n```\n\n## \u8bbe\u8ba1\n+ \u4eff\u5236wheel\u683c\u5f0f\u8bbe\u8ba1caskpkg\u6253\u5305\u683c\u5f0f\n+ \u4f7f\u7528MinIO\u4f5c\u4e3a\u8fdc\u7aef\u5b58\u50a8\n+ \u652f\u6301\u672c\u5730\u6253\u5305\u548c\u8fdc\u7aef\u5b58\u50a8\u4e24\u5927\u529f\u80fd\n\n### \u6280\u672f\u5217\u8868\n+ __init__\u6536\u96c6\u57fa\u7840\u64cd\u4f5c\u51fd\u6570\n+ __all__\u66b4\u9732\u6307\u5b9a\u529f\u80fd\n+ .cask\u9690\u85cf\u6587\u4ef6\u5939\n+ yaml\u914d\u7f6e\u6587\u4ef6\n+ MinIO\u8fdc\u7aef\u5b58\u50a8\n+ Tar\u538b\u7f29\u5305\u6280\u672f\n\n\n### \u8bbe\u8ba1UML\u56fe\n\u4ee5\u4e0b\u662f\u8bbe\u8ba1\u7684UML\u56fe\uff1a\n\n\n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Cash is a storage management tool, including project packaging and remote storage.",
"version": "0.1",
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "910c8b99c72d53a2a969d0a692920db489c0994769a35c4cb0c9402bf5c8e62d",
"md5": "ac9f3091dfeb9111e8eceff0a8692e10",
"sha256": "6b397bacd65f72992240192d02ecaffcde231cce5ffa7737090355cc5d595189"
},
"downloads": -1,
"filename": "shihua_cask-0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ac9f3091dfeb9111e8eceff0a8692e10",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9.12",
"size": 14066,
"upload_time": "2023-03-14T10:17:47",
"upload_time_iso_8601": "2023-03-14T10:17:47.908591Z",
"url": "https://files.pythonhosted.org/packages/91/0c/8b99c72d53a2a969d0a692920db489c0994769a35c4cb0c9402bf5c8e62d/shihua_cask-0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e5c989f5b974d0d3394a549ced4cbcbf9b2bd20cda4b00648622031cd9a089dd",
"md5": "876ef1f5e5b2cf630d95620356b6088d",
"sha256": "22456f630dac18779a193515d2fd068879833a59c0e21b7f40f9d091a44a3007"
},
"downloads": -1,
"filename": "shihua-cask-0.1.tar.gz",
"has_sig": false,
"md5_digest": "876ef1f5e5b2cf630d95620356b6088d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9.12",
"size": 11087,
"upload_time": "2023-03-14T10:17:50",
"upload_time_iso_8601": "2023-03-14T10:17:50.199745Z",
"url": "https://files.pythonhosted.org/packages/e5/c9/89f5b974d0d3394a549ced4cbcbf9b2bd20cda4b00648622031cd9a089dd/shihua-cask-0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-03-14 10:17:50",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "redblue0216",
"github_project": "Cask",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "shihua-cask"
}