Module tf.clean
Clean
From version 7.7.7 onward, TF uses a parameter PACK_VERSION
to mark the stored pre-computed data.
Whenever there are incompatible changes in the packed data format, this
version number will be increased and TF will not attempt to load
the older pre-computed data.
The older data will not be removed, however.
Use the function clean()
to get rid of pre-computed data
that you no longer need.
Functions
def clean(tfd=True, backend=None, dry=True, specific=None, current=False)
-
Expand source code Browse git
def clean(tfd=True, backend=None, dry=True, specific=None, current=False): """Clean up older compressed `.tfx` files. Parameters ---------- Removes all pre-computed data resulting from other `PACK_VERSION` than the one currently used by TF. You find the current pack version in `tf.parameters` tfd: boolean, optional True By default, your `~/text-fabric-data` is traversed and cleaned, but if you pass `tfd=False` it will be skipped. backend: string, optional, `None` If None, only material in `text-fabric-data` will be cleaned. But you can also clean clones of GitHub / GitLab. To clean GitHub / GitLab clones, pass `github` / `gitlab`. To clean the clones from a specific GitLab server, pass its server name. specific: string, optional, `None` You can pass a specific directory here. The standard directories `~/github` and `~/text-fabric-data` will not be used, only the directory you pass here. `~` will be expanded to your home directory. current: boolean, optional, `False` If current=True, also the pre-computed results of the current version will be removed. dry: boolean, optional, `False` By default, nothing will be deleted, and you only get a list of what will be deleted if it were not a dry run. If you pass `dry=False` the delete actions will really be executed. """ if specific is not None: bases = [ex(specific)] else: if backend is not None: backend = backendRep(backend, "norm") bases = [backendRep(backend, kind) for kind in ("cache", "clone")] for base in bases: for triple in walkDir(base): d = triple[0] if binRe.search(d): files = triple[2] if files: err(f"{d} legacy: delete {len(files)} files ... ") if dry: err("dry\n") else: for f in files: fileRemove(f"{d}/{f}") err("done\n") continue match = binvRe.search(d) if match: binv = match.group(1) if not current and binv == PACK_VERSION: out(f"{d} version {binv}: keep\n") else: files = triple[2] err(f"{d} version {binv}: delete it and its {len(files)} files ...") if dry: err("dry\n") else: dirRemove(d) err("done\n") if dry: sys.stdout.write("\n") sys.stderr.write("This was a dry run\n") sys.stderr.write("Say clean(dry=False) to perform the cleaning\n")
Clean up older compressed
.tfx
files.Parameters
Removes all pre-computed data resulting from other
PACK_VERSION
than the one currently used by TF.You find the current pack version in
tf.parameters
tfd
:boolean
, optionalTrue
- By default, your
~/text-fabric-data
is traversed and cleaned, but if you passtfd=False
it will be skipped. backend
:string
, optional,
None``-
If None, only material in
text-fabric-data
will be cleaned. But you can also clean clones of GitHub / GitLab.To clean GitHub / GitLab clones, pass
github
/gitlab
.To clean the clones from a specific GitLab server, pass its server name.
specific
:string
, optional,
None``- You can pass a specific directory here. The standard directories
~/github
and~/text-fabric-data
will not be used, only the directory you pass here.~
will be expanded to your home directory. current
:boolean
, optional,
False``- If current=True, also the pre-computed results of the current version will be removed.
dry
:boolean
, optional,
False``- By default, nothing will be deleted, and you only get a list of
what will be deleted if it were not a dry run.
If you pass
dry=False
the delete actions will really be executed.
def err(msg)
-
Expand source code Browse git
def err(msg): """Write to standard error output immediately.""" sys.stderr.write(ux(msg)) sys.stderr.flush()
Write to standard error output immediately.
def out(msg)
-
Expand source code Browse git
def out(msg): """Write to standard normal output immediately.""" sys.stdout.write(ux(msg)) sys.stdout.flush()
Write to standard normal output immediately.