简单的纯python库,用于读取化石资源库。
fossilp的Python项目详细描述
简单的纯python库,用于读取化石资源库。
>>> r=Repo('project.fossil')>>> f=r.file(123)>>> f.blobb'File content...' >>> filelist=r.manifest(124).F>>> filelist[('file', '1234567890aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')]
这是一个瘦包装,而fossil是一个基于sqlite的版本控制系统。 因此,可能需要使用原始sql(Repo.execute)来获取更多信息。
不支持写入、提交或执行化石命令。(虽然可以执行SQL,但不建议写入。)也不支持读取配置数据库(~/.fossil)、签出数据库(_fossil)或签出目录。
API
课程
- repo(repository,check=false,cachesize=64):表示化石回购。repository是文件名。check指定是否计算校验和。如果不安装numpy,计算会慢得多。cachesize指定应该缓存多少blob,设置为0将禁用。
- repo.文件(self,key):根据key返回一个File,它是blob的rid或uuid(sha1/sha3-256)。
- repo.manifest(self,key):根据key返回StructuralArtifact。
- repo.工件(self,key,type_=none):根据key返回Artifact。type_可以是'structural'或'file'。
- 回购\u getitem(self,key):根据key返回Artifact。
- repo.find_工件(self,prefix):给定uuid(sha1/sha3-256)前缀,返回一个元组(rid, uuid)。如果找不到,则引发一个KeyError。
- repo.到uuid(self,rid):给定rid,返回blob的uuid。如果找不到,则引发一个IndexError。
- repo.to_rid(self,uuid):给定uuid,返回blob的rid。如果找不到,则引发一个IndexError。
- repo.execute(self,sql,parameters=none):在化石repo(sqlite数据库)上执行原始sql语句。另请参见src/schema.c。
- 工件(blob=none,rid=none,uuid=none):表示化石工件,它是blob表中的任何东西。具有属性blob、rid和uuid。blob是工件(文件)内容。
- file(blob=none,rid=none,uuid=none):表示文件,与Artifact相同。
- structural artifact(blob=none,rid=none,uuid=none):表示一个结构工件,aka。清单,可以是签入、wiki和机票。
- 结构工件。keys():列表卡。
- 结构工件。cards:卡片字典。如果一个卡类型可以出现多次,则相同类型的卡将存储在列表中。
- 可以像art.F、art['F']或art.file这样访问卡。另请参见Fossil documentation。一些有用的卡片:f(文件)、c(注释)、p(父工件)、u(用户登录)、d(日期时间)、w(wiki文本)
其他
- lru cache(maxlen):最近使用最少(lru)缓存的简单实现。
化石在大多数桌子上使用朱利安日期。
- julian_to_unix(t):将julian日期t转换为unix时间戳。
- unix_to_julian(t):将unix时间戳t转换为julian日期。