Created
September 13, 2025 21:30
-
-
Save chapmanjacobd/e557c6df92ea9cb0886986f5f7c1ff44 to your computer and use it in GitHub Desktop.
kinda sad I can't use this... too many complications: post-actions, printer can mark rows deleted, etc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class ArgparseDBsOrPaths(argparse.Action): | |
def __call__(self, parser, namespace, values, option_string=None): | |
if values is None: | |
return None | |
databases = [] | |
if values == [STDIN_DASH]: | |
print(f"{parser.prog}: Reading from stdin...", file=sys.stderr) | |
stdin_paths = sys.stdin.readlines() | |
paths = None | |
if not stdin_paths or (len(stdin_paths) == 1 and stdin_paths[0].strip() == ""): | |
paths = None | |
else: | |
paths = [s.strip() for s in stdin_paths] | |
setattr(namespace, "databases", None) | |
setattr(namespace, self.dest, paths) | |
return | |
split_index = 0 | |
for i, val in enumerate(values): | |
if is_sqlite(val): | |
databases.append(val) | |
split_index = i + 1 | |
else: | |
break | |
setattr(namespace, "database", True) | |
setattr(namespace, "databases", databases if databases else None) | |
setattr(namespace, self.dest, values[split_index:] if split_index < len(values) else None) | |
## I guess instead do something like this: | |
function scandb --argument-names path | |
lb-dev fsadd --filesystem ~/(path basename -- $path).db $path | |
lb-dev fsadd --video --audio ~/(path basename -- $path).wt.db $path | |
end | |
parallel scandb ::: *.db | |
OR | |
parallel lb du {} --parents -D=-7 --folder-size=+500G ::: ~/lb/fs/d*.db |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This probably would work mostly fine if I had used
ProcessPoolExecutor
:But it's making the code messy and hard to reason about