本文整理汇总了Python中clldutils.path.Path.mkdir方法的典型用法代码示例。如果您正苦于以下问题:Python Path.mkdir方法的具体用法?Python Path.mkdir怎么用?Python Path.mkdir使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类clldutils.path.Path
的用法示例。
在下文中一共展示了Path.mkdir方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from clldutils.path import Path [as 别名]
# 或者: from clldutils.path.Path import mkdir [as 别名]
def __init__(self, name, default=None, **kw):
"""Initialization.
:param name: Basename for the config file (suffix .ini will be appended).
:param default: Default content of the config file.
"""
self.name = name
self.default = default
config_dir = Path(kw.pop('config_dir', None) or DIR)
RawConfigParser.__init__(self, kw, allow_no_value=True)
if self.default:
if PY3:
fp = io.StringIO(self.default)
else:
fp = io.BytesIO(self.default.encode('utf8'))
self.readfp(fp)
cfg_path = config_dir.joinpath(name + '.ini')
if cfg_path.exists():
assert cfg_path.is_file()
self.read(cfg_path.as_posix())
else:
if not config_dir.exists():
try:
config_dir.mkdir()
except OSError: # pragma: no cover
# this happens when run on travis-ci, by a system user.
pass
if config_dir.exists():
with open(cfg_path.as_posix(), 'w') as fp:
self.write(fp)
self.path = cfg_path
示例2: to_cldf
# 需要导入模块: from clldutils.path import Path [as 别名]
# 或者: from clldutils.path.Path import mkdir [as 别名]
def to_cldf(self, dest, mdname='cldf-metadata.json'):
"""
Write the data from the db to a CLDF dataset according to the metadata in `self.dataset`.
:param dest:
:param mdname:
:return: path of the metadata file
"""
dest = Path(dest)
if not dest.exists():
dest.mkdir()
data = self.read()
if data[self.source_table_name]:
sources = Sources()
for src in data[self.source_table_name]:
sources.add(Source(
src['genre'],
src['id'],
**{k: v for k, v in src.items() if k not in ['id', 'genre']}))
sources.write(dest / self.dataset.properties.get('dc:source', 'sources.bib'))
for table_type, items in data.items():
try:
table = self.dataset[table_type]
table.common_props['dc:extent'] = table.write(
[self.retranslate(table, item) for item in items],
base=dest)
except KeyError:
assert table_type == self.source_table_name, table_type
return self.dataset.write_metadata(dest / 'cldf-metadata.json')
示例3: in_dir
# 需要导入模块: from clldutils.path import Path [as 别名]
# 或者: from clldutils.path.Path import mkdir [as 别名]
def in_dir(cls, d, empty_tables=False):
fname = Path(d)
if not fname.exists():
fname.mkdir()
assert fname.is_dir()
res = cls.from_metadata(fname)
if empty_tables:
del res.tables[:]
return res
示例4: write_info
# 需要导入模块: from clldutils.path import Path [as 别名]
# 或者: from clldutils.path.Path import mkdir [as 别名]
def write_info(self, outdir=None):
outdir = outdir or self.id
if not isinstance(outdir, Path):
outdir = Path(outdir)
if not outdir.exists():
outdir.mkdir()
fname = outdir.joinpath(self.fname('.ini'))
self.cfg.write(fname)
if os.linesep == '\n':
with fname.open(encoding='utf8') as fp:
text = fp.read()
with fname.open('w', encoding='utf8') as fp:
fp.write(text.replace('\n', '\r\n'))
return fname
示例5: lff2tree
# 需要导入模块: from clldutils.path import Path [as 别名]
# 或者: from clldutils.path.Path import mkdir [as 别名]
def lff2tree(tree=TREE, outdir=None, builddir=None, lffs=None):
"""
- get mapping glottocode -> Languoid from old tree
- assemble new directory tree
- for each path component in lff/dff:
- create new dir
- copy info file from old tree (possibly updating the name) or
- create info file
- for each language/dialect in lff/dff:
- create new dir
- copy info file from old tree (possibly updating the name) or
- create info file
- rm old tree
- copy new tree
"""
# FIXME: instead of removing trees, we should just move the current one
# from outdir to build, and then recreate in outdir.
builddir = Path(builddir) if builddir else build_path("tree")
old_tree = {l.id: l for l in walk_tree(tree)} if tree else {}
out = Path(outdir or tree)
if not out.parent.exists():
out.parent.mkdir()
if out.exists():
if builddir.exists():
try:
rmtree(builddir)
except: # pragma: no cover
pass
if builddir.exists(): # pragma: no cover
raise ValueError("please remove %s before proceeding" % builddir)
# move the old tree out of the way
shutil.move(out.as_posix(), builddir.as_posix())
out.mkdir()
lffs = lffs or {}
languages = {}
for lang in read_lff(Level.language, fp=lffs.get(Level.language)):
languages[lang.id] = lang
lang2tree(lang, lang.lineage, out, old_tree)
for lang in read_lff(Level.dialect, fp=lffs.get(Level.dialect)):
if not lang.lineage or lang.lineage[0][1] not in languages:
raise ValueError("unattached dialect") # pragma: no cover
lang2tree(lang, languages[lang.lineage[0][1]].lineage + lang.lineage, out, old_tree)
示例6: lff2tree
# 需要导入模块: from clldutils.path import Path [as 别名]
# 或者: from clldutils.path.Path import mkdir [as 别名]
def lff2tree(tree=TREE, outdir=None, test=False):
"""
- get mapping glottocode -> Languoid from old tree
- assemble new directory tree
- for each path component in lff/dff:
- create new dir
- copy info file from old tree (possibly updating the name) or
- create info file
- for each language/dialect in lff/dff:
- create new dir
- copy info file from old tree (possibly updating the name) or
- create info file
- rm old tree
- copy new tree
"""
out = Path(outdir or build_path('tree'))
if not out.parent.exists():
out.parent.mkdir()
if out.exists():
rmtree(out)
out.mkdir()
old_tree = {l.id: l for l in walk_tree(tree)} if tree else {}
languages = {}
for lang in read_lff('language'):
languages[lang.id] = lang
lang2tree(lang, lang.lineage, out, old_tree)
for lang in read_lff('dialect'):
if not lang.lineage or lang.lineage[0][1] not in languages:
raise ValueError('unattached dialect')
lang2tree(
lang, languages[lang.lineage[0][1]].lineage + lang.lineage, out, old_tree)
if not test:
rmtree(TREE, ignore_errors=True)
copytree(out, TREE)
示例7: list
# 需要导入模块: from clldutils.path import Path [as 别名]
# 或者: from clldutils.path.Path import mkdir [as 别名]
))
codes[denumber] = {
'ID': '{0}-{1}'.format(fid, denumber),
'Name': dename,
'Parameter_ID': fid,
}
fname, fauthors, aname = list(db.execute(SQL_FEATURE.format(fid)))[0]
ds.write(
ValueTable=values,
LanguageTable=languages,
ParameterTable=[{
'ID': fid,
'Name': fname,
'Area': aname,
'Authors': fauthors,
'Url': 'http://wals.info/feature/' + fid}],
CodeTable=codes.values(),
)
if __name__ == '__main__':
import sys
db = create_engine(sys.argv[1])
feature = sys.argv[2]
out = Path('wals_{0}_cldf'.format(feature))
if not out.exists():
out.mkdir()
make_cldf(db, out, feature)
示例8: lff2tree
# 需要导入模块: from clldutils.path import Path [as 别名]
# 或者: from clldutils.path.Path import mkdir [as 别名]
def lff2tree(lff, tree=None, outdir='fromlff'):
out = Path(outdir)
out.mkdir()
old_tree = {l.id: l for l in languoids_from_tree(tree)} if tree else {}
nodes = set()
languages = {}
for lang in read_lff(lff, 'language'):
groupdir = out
languages[lang.id] = lang
for name, id_, level in lang.lineage:
groupdir = groupdir.joinpath('%s.%s' % (slug(name), id_))
if not groupdir.exists():
groupdir.mkdir()
if id_ in old_tree:
group = old_tree[id_]
assert group.level == level
if name != group.name:
# rename a subgroup!
group.name = name
group.write_info(groupdir)
else:
# TODO: create Languoid, write info file!
pass
assert id_ in old_tree
nodes.add(id_)
assert lang.id in old_tree
nodes.add(lang.id)
old_lang = old_tree[lang.id]
assert old_lang.level == lang.level
if old_lang.name != lang.name:
old_lang.name = lang.name
langdir = groupdir.joinpath(lang.fname())
langdir.mkdir()
old_lang.write_info(langdir)
for lang in read_lff(lff.replace('lff', 'dff'), 'dialect'):
groupdir = out
if not lang.lineage:
# TODO: handle error of un-attached dialects!
continue
for name, id_, level in languages[lang.lineage[0][1]].lineage + lang.lineage:
groupdir = groupdir.joinpath('%s.%s' % (slug(name), id_))
if not groupdir.exists():
groupdir.mkdir()
if id_ in old_tree:
group = old_tree[id_]
assert group.level == level
if name != group.name:
# rename a subgroup!
group.name = name
group.write_info(groupdir)
else:
# TODO: create Languoid, write info file!
pass
assert id_ in old_tree
nodes.add(id_)
assert lang.id in old_tree
nodes.add(lang.id)
old_lang = old_tree[lang.id]
assert old_lang.level == lang.level
if old_lang.name != lang.name:
old_lang.name = lang.name
langdir = groupdir.joinpath(lang.fname())
langdir.mkdir()
old_lang.write_info(langdir)
print len(nodes)