Compare commits

...

7 Commits

Author SHA1 Message Date
2edd8a2093 Bumped package version
All checks were successful
ydeng/csvbyname/pipeline/head This commit looks good
2023-04-23 14:56:48 -05:00
7a400457fe Fixed double line breaks in output on Windows
All checks were successful
ydeng/csvbyname/pipeline/head This commit looks good
2023-04-23 14:56:29 -05:00
59cfe486aa Bumped package version
All checks were successful
ydeng/csvbyname/pipeline/head This commit looks good
2023-04-23 14:44:03 -05:00
266a611fea Fixed inconsistent CSV writing function
All checks were successful
ydeng/csvbyname/pipeline/head This commit looks good
2023-04-23 14:42:44 -05:00
cb36b8adb3 Version bump
All checks were successful
ydeng/csvbyname/pipeline/head This commit looks good
2023-04-21 15:56:08 -05:00
ded60aa742 Added step to test if command is runnable
All checks were successful
ydeng/csvbyname/pipeline/head This commit looks good
2023-04-21 15:53:07 -05:00
adf734f3c1 Added feature to add basename column to output
All checks were successful
ydeng/csvbyname/pipeline/head This commit looks good
2023-04-21 15:52:20 -05:00
5 changed files with 32 additions and 15 deletions

5
.vscode/launch.json vendored
View File

@@ -8,19 +8,20 @@
"name": "Use Test Resources",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/csvbyname/csvbyname.py",
"console": "integratedTerminal",
"args": [
"${workspaceFolder}/tests/resources",
"${workspaceFolder}/output.csv",
"-r",
"-n",
"-p",
"group_num:group(\\d)-\\w-\\d+\\.txt",
"group(\\d)-(?P<sect>\\w)-(?P<patid>\\d+)\\.txt",
"-V",
"DEBUG"
],
"justMyCode": true
"justMyCode": true,
"module": "csvbyname.cli"
}
]
}

1
Jenkinsfile vendored
View File

@@ -20,6 +20,7 @@ pipeline {
stage("test") {
steps {
sh "pip install dist/*.whl"
sh "csvbyname -h"
}
}
stage("archive") {

View File

@@ -13,7 +13,7 @@ def run(args):
args.recursive,
args.add_re_property,
)
write_collected_to_csv(args.output, collected, pkeys)
write_collected_to_csv(args.output, collected, pkeys, args.output_basename)
def main():
@@ -63,6 +63,17 @@ def main():
"Alternatively, use named REGEX groups.",
nargs="+",
type=str,
required=True
)
argparser.add_argument(
"-n",
"--output-basename",
help='Adds a column called "basename" to the resulting CSV where it is just '
"The base name of the path instead of the entire path. This is not guaranteed "
"to be unique.",
default=False,
required=False,
action="store_true",
)
argparser.add_argument(
"-V",

View File

@@ -72,20 +72,24 @@ def collect_files(
def write_collected_to_csv(
output_path: str, collected: dict[str, dict[str, str]], property_keys: Iterable[str]
output_path: str,
collected: dict[str, dict[str, str]],
property_keys: Iterable[str],
output_basename: bool,
):
with open(output_path, "w") as output_fd:
with open(output_path, "w", newline="", encoding="utf-8") as output_fd:
s_property_keys = sorted(property_keys)
header = ["path", *s_property_keys]
header = ["path"]
if output_basename:
header.append("basename")
header.extend(s_property_keys)
writer = csv.writer(output_fd)
writer.writerow(header)
for full_path, properties in collected.items():
writer.writerow(
[
full_path,
*(
properties[k] if k in properties else "N/A"
for k in s_property_keys
),
]
row = [full_path]
if output_basename:
row.append(os.path.basename(full_path))
row.extend(
(properties[k] if k in properties else "N/A" for k in s_property_keys)
)
writer.writerow(row)

View File

@@ -1,6 +1,6 @@
[metadata]
name = csvbyname
version = 0.0.3
version = 0.0.6
author = Harrison
[options]