蟒蛇

sciencebasep的Python项目详细描述


python sciencebase实用程序
===================
这个python模块提供了一些与sciencebase交互的基本服务。它需要安装"请求"模块,它可以在
[http://docs.python requests.org/en/latest/](http://docs.python requests.org/en/latest/)中找到。
如果遇到安全错误,还可以安装请求[security]

quick start
----
sciencebasepy可以与pip一起安装:

`pip installsciencebasepy`

否则,请下载此存储库的内容,并通过运行"python setup.py install"将sciencebasepy库安装到python安装中。示例用法包含在"demo.py"中。


module contents
----
sbsession类提供以下方法:

这将导致将cookie添加到会话
供后续调用使用。

*`loginc(username)`
使用给定的用户名登录到sciencebase,并提示输入密码。密码不会回显到控制台。为交互式脚本提供方便。

*` is_logged_in()`
返回sbsession是否已登录并在sciencebase中处于活动状态

*` get_session_info()`
返回sciencebase josso session info

*`ping()`
ping sciencebase。确定sciencebase是否可用的非常低成本的操作。

*`log out()`
注销sciencebase

确保只需调用
"上载文件"和"创建项目"即可上载它们。否则,sciencebase将不会创建适当的facet,
并且不会创建服务。

*`create_item(sb_json)`
创建新的sciencebase项。sb_json格式的文档可以在
https://my.usgs.gov/confluence/display/sciencebase/sciencebase+item+core+model

*`create_items(sb_json)`
create multiple new items in sciencebase找到。sb_json:表示要创建的sciencebase目录项的json列表。

*`create_hidden_property(item_id,sb_json)`
为sciencebase项创建新的隐藏属性:post/catalog/item/<;item_id>;/json的hidden properties
文档可以在https://code.chs.usgs.gov/sciencebase/dev docs/wikis/api/catalog/item hidden properties

*`上载文件和创建项目(父项id,文件名)`
上载文件并创建科学基础项目。添加参数"scrape_file=false"以绕过sciencebase元数据
处理。

*"上载文件"和"创建项目"(父项id,[文件名,…])`
上载一组文件并创建sciencebase项。添加参数"scrape_file=false"以绕过sciencebase
元数据处理。


祖先的}是为了?fields=title,祖先
类似于查找项目。

*`get_my_item s_id()`
获取登录用户的"我的项目"的ID

*`get_hidden_properties(item_id)`
列出给定项目的所有隐藏属性:get/catalog/item/<;item_id>;/hiddenproperties

*`get_hidden_property(item_id,hiddenpropertyid)`
获取给定项的特定隐藏属性:get/catalog/item/<;item_id>;/hiddenproperties/<;id>;

*`get_item_ids_by_hidden_property(hidden_property)`
获取与给定隐藏属性关联的项的sciencebase id。隐藏属性json
(对于hidden_属性参数)包含两个字段,"type"和"value"都是
可选的。

*`get_child_id(parent_id)`
get id of具有给定id的sciencebase项的所有直系子项(不遵循快捷方式)。

*`获取父项的id(父项的id)`
获取给定项的所有子项的id,不包括链接在中的子项(短剪切)。
(即,通过ancestorsexcludinglinks=<;parent-id>;查找项并生成其ID的列表)。

*`get(url)`
获取给定URL的文本响应。

*`get-json(url)`
获取给定URL的JSON响应。

*`get-item-files(sb-json,destination)`
获取附加到sciencebase项的所有文件的zip,并将其放在destination
文件夹中。目标默认为当前目录。如果指定,则目标文件夹
必须存在。这将创建zip文件服务器端,然后将其流式传输到客户端。

*`获取项目文件(sb_json,destination)`
下载附加到sciencebase项目的所有文件,并将其放在目标文件夹中。
目标默认为当前目录。如果指定,则目标文件夹必须存在。这些文件是单独流式传输的。

*`get_item_file_info(sb_json)`
获取有关附加到sciencebase项的所有文件的信息。返回包含每个文件的url、名称和大小的
词典列表。

*`下载文件(url、本地文件名、目标)`
下载单个文件。目标默认为当前目录。如果指定,
目标文件夹必须存在。

请确保只需调用一个"upload_files*"方法就可以上载它们。
否则,sciencebase将不会创建适当的facet,不会创建服务。

*`update_item(sb_json)`
更新现有的sciencebase项。

*`update_items(sb_json)`
更新sciencebase中的多个项。sb_json:表示要更新的sciencebase目录项的json列表。

*`update_hidden_属性(item_id,hiddenpropertyid,sb_json)`
>更新现有sciencebase项的hidden属性。

*`upload_file_to_item(sb_json,文件名)`
将文件上载到现有的sciencebase项。添加参数"scrape_file=false"以绕过sciencebase
元数据处理。

*"上载文件"和"更新"项(项,[文件名,…)`
上载一组文件并更新现有的sciencebase项。添加参数"scrape_file=false"以绕过
sciencebase元数据处理。

*"上载_files_和_upsert_item(item,[文件名,…)"`
上载多个文件并创建或更新sciencebase项。添加参数"scrape_file=false"以绕过
sciencebase元数据处理。

*`replace_file(filename,item)`
替换sciencebase项上的文件。此方法将替换与新文件同名的所有文件,
无论它们是在文件列表中还是在facet中。

*`上载文件(文件名,mimetype)`
(高级用法)上载文件到sciencebase。文件将暂存在临时区域中。为了将pathondisk附加到项,必须将pathondisk添加到项文件项或facet的一个文件项中。

*`add_extent(项ID,feature_geojson)`
从feature或featurecollection geojson将功能添加到项目示意图中。


\由项目ID标识。警告:仅限高级使用。必须正确创建acl json。
如果可能,请使用ACL帮助程序方法之一(如下)。

*`添加ACL用户读取(用户名,项ID)`
为指定项上的给定用户添加读取ACL。

*`删除ACL用户读取(用户名,项目id)`
删除指定项目上给定用户的读取acl。

*` add_acl_user_write(用户名,项id)`
为指定项上的给定用户添加写acl。

*`删除指定项上的给定用户的写acl(用户名,项id)`
删除指定项上的给定用户的写acl。

*`添加acl_role_read(角色名,项目ID`
为指定项目上的给定角色添加读取ACL。

*`删除指定项目上的给定角色的读取ACL(角色名称,项目ID)`
删除指定项目上的给定角色的读取ACL。

*`添加ACL角色写入(角色名称,项目id)`
为指定项目上的给定角色添加写acl。

*`删除指定项目上的给定角色的写acl(角色名,项目id)`
项目id)`
将项目设置为从其父项继承acl。

*`set_acls_inherit_read(项目id)`
将项目设置为从其父项继承read acl。

*`set_acls_inherit_write(项目id)`
将项目设置为从其父项继承write acl。

*`发布项目(项目id)`
发布项目,添加公共读取权限。用户必须是USG或处于发布者角色。

*`取消发布项目(项目ID)`
取消发布项目,正在删除公共读取权限。

*` has_public_read(acl)`
返回给定的acl是否包含公共读取权限。

*`打印acl(acl)`
很好地打印给定的acl json。

\delete
*`删除项(sb_json)`
删除现有的sciencebaseitem.

*`删除项(item id)`
删除多个sciencebase项。这比对多个删除使用delete_item()要高效得多,因为它
在对sciencebase的一次调用中执行操作服务器端。

*`delete_hidden_property(item_id,hidden property id)`
删除现有项的特定隐藏属性项。

*`取消删除项(项ID)`
取消删除科学基项。


父项ID。

*`移动项(项ID,父项ID)`
将所有具有给定项ID的sciencebase项移动到具有给定父项ID的sciencebase项下。

此回购。

*`按任何文本查找项目(文本)`
在项目中的某个位置查找包含给定文本的项目。

*`按标题查找项目(文本)`
在项目标题中查找包含给定文本的项目。

*`查找项目(参数)`
在指定的搜索参数。这些参数与在高级搜索中将
传递给sciencebase的参数相同。

*`find_hidden_property(hidden_property)`
find sciencebase items by hidden property value.hidden_property:sciencebase item hidden property json:
`{"type":…,"value":…}`。返回包含匹配
sciencebase项的第一页的项隐藏属性json。对后续页使用next()方法。

*`find_items_by_filter_and_hidden_property(params,hidden_property)`
在指定的搜索参数和hidden property json中查找符合条件的项。隐藏属性json包含
两个字段,"type"和"value"都是可选的。**警告**:由于隐藏属性结果必须
加入到ScienceBase目录搜索结果中,此方法返回所有匹配项。返回太多项的查询可能会被sciencebase阻止。

*`next(items)`
获取下一页结果,其中*items*是当前搜索结果。

*`previous(items)`
获取上一页结果,其中,*items*是当前搜索结果。


在具有id父项id的sciencebase项上创建一个快捷方式,并将其指向另一个具有id项id的项。

*`删除快捷方式(项id,父项ID`
从具有ID父项ID的sciencebase项中删除指向具有ID项ID的另一项的快捷方式。

*`按名称获取项链接类型(链接类型名称)`
从给定类型的词汇服务器获取项链接类型JSON对象。

*`get项链接类型(项ID)`
get item link(关系)JSON描述涉及具有给定ID的项的关系。


*`创建项目链接(从项目ID到项目ID,链接类型ID,反向=false)`
在指定类型的两个项目之间创建项目链接。

*`创建与项目相关的链接(从项目ID,要在两个项之间创建"相关"项链接,请执行以下操作:


\sb contact_type)`
将给定的目录联系人json转换为有效的sciencebase item联系人json。

无需登录。
item_json=sb.get_item('505bc673e4b08c986b32bf81')
打印"公共项:"+str(item_json)

获取私有项。需要先登录。
username=raw_input("username:")
sb.loginc(str(username))
#创建新项。所需的最小值是新项的标题,父项ID
新项={'title':'这是新的测试项',
'parentID':sb.get_my_items_id(),
'出处':{'annotation':'python sciencebase rest test script'}
新项=sb.create_item(新项)
打印"new item:"+str(new_item)

'sciencebasepy.py')
打印"文件更新:"+str(新项)

列出新创建项中的文件信息
ret=sb.获取项文件信息(新项)
对于ret中的文件信息:
打印"文件"+文件信息["名称"]+","+str(文件信息["大小"])+"字节,下载url"+fileinfo["url"]

在当前目录下。
path="./tmp"
如果不存在os.path.exists(path):
os.makedirs(path)
ret=sb.get_item_files(new_item,路径)
打印"下载的文件"+str(ret)

删除新创建的项
ret=sb.删除项(新项)
打印"删除:"+str(ret)

上载多个文件以创建新项
ret=sb.上载文件以创建项(sb.获取我的项id(),['sciencebasepy.py','readme.md'])
打印str(ret)

#注销
sb.logout()
````

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从数组中打印int值?   prepared语句Java中奇怪的异常PreparedStatement:参数索引超出范围   封装如何在OOP Java中为主方法编码?   java某些手机显示快捷方式徽章需要什么权限?   java TextView不会随OnItemSelectedListener更改   java注释处理器不会自动触发吗?   java Spring JPA如何计算外键数   c#对于这个简单的OOAD问题,哪种设计最优雅?   java如何处理while循环中的异常?   Android Studio错误:进程'command'/home/draven/Downloads/安卓studio/jre/bin/java''结束,退出值为非零2   在使用Payara服务器的Vaadin应用程序中导航到根目录时,java将丢失上下文根目录   使用contentType application/json而不是application/jsonpatch+json的java修补程序   带有tomcat的java HAproxy连接不足   Java:在应用过滤器后创建一个简单的通用方法进行计数   java如何使用多态性创建一个实例化对象的方法,然后用它们高效地填充ArrayList?