Compare commits
7 Commits
cb36b8adb3
...
develop
Author | SHA1 | Date | |
---|---|---|---|
21d060be6a | |||
be4d665301 | |||
9e59bc097c | |||
2edd8a2093 | |||
7a400457fe | |||
59cfe486aa | |||
266a611fea |
22
.devcontainer/devcontainer.json
Normal file
22
.devcontainer/devcontainer.json
Normal file
@@ -0,0 +1,22 @@
|
||||
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
|
||||
// README at: https://github.com/devcontainers/templates/tree/main/src/python
|
||||
{
|
||||
"name": "Python 3",
|
||||
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
|
||||
"image": "mcr.microsoft.com/devcontainers/python:1-3.12-bullseye"
|
||||
|
||||
// Features to add to the dev container. More info: https://containers.dev/features.
|
||||
// "features": {},
|
||||
|
||||
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||
// "forwardPorts": [],
|
||||
|
||||
// Use 'postCreateCommand' to run commands after the container is created.
|
||||
// "postCreateCommand": "pip3 install --user -r requirements.txt",
|
||||
|
||||
// Configure tool-specific properties.
|
||||
// "customizations": {},
|
||||
|
||||
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
|
||||
// "remoteUser": "root"
|
||||
}
|
1
.vscode/launch.json
vendored
1
.vscode/launch.json
vendored
@@ -13,6 +13,7 @@
|
||||
"${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",
|
||||
|
22
Jenkinsfile
vendored
22
Jenkinsfile
vendored
@@ -1,15 +1,15 @@
|
||||
pipeline {
|
||||
agent any
|
||||
stages {
|
||||
stage("clean") {
|
||||
steps {
|
||||
sh 'rm -rf ./dist/*'
|
||||
}
|
||||
agent {
|
||||
kubernetes {
|
||||
cloud 'rsys-devel'
|
||||
defaultContainer 'pip'
|
||||
inheritFrom 'pip'
|
||||
}
|
||||
}
|
||||
stages {
|
||||
stage("install") {
|
||||
steps {
|
||||
sh 'mamba env update --file environment.yml'
|
||||
sh 'echo "mamba activate csvbyname" >> ~/.bashrc'
|
||||
sh 'pip install -r requirements.txt'
|
||||
}
|
||||
}
|
||||
stage("build") {
|
||||
@@ -17,7 +17,7 @@ pipeline {
|
||||
sh "python -m build"
|
||||
}
|
||||
}
|
||||
stage("test") {
|
||||
stage("test installation") {
|
||||
steps {
|
||||
sh "pip install dist/*.whl"
|
||||
sh "csvbyname -h"
|
||||
@@ -25,7 +25,7 @@ pipeline {
|
||||
}
|
||||
stage("archive") {
|
||||
steps {
|
||||
archiveArtifacts artifacts: 'dist/*.tar.gz, dist/*.whl'
|
||||
archiveArtifacts artifacts: 'dist/*.tar.gz, dist/*.whl', fingerprint: true, followSymlinks: false, onlyIfSuccessful: true
|
||||
}
|
||||
}
|
||||
stage("publish package") {
|
||||
@@ -33,7 +33,7 @@ pipeline {
|
||||
branch '**/main'
|
||||
}
|
||||
steps {
|
||||
withCredentials([usernamePassword(credentialsId: 'rs-git-package-registry-ydeng', passwordVariable: 'PASS', usernameVariable: 'USER')]) {
|
||||
withCredentials([usernamePassword(credentialsId: '4d6f64be-d26d-4f95-8de3-b6a9b0beb311', passwordVariable: 'PASS', usernameVariable: 'USER')]) {
|
||||
sh "python -m twine upload --repository-url https://git.reslate.systems/api/packages/${USER}/pypi -u ${USER} -p ${PASS} --non-interactive --disable-progress-bar --verbose dist/*"
|
||||
}
|
||||
}
|
||||
|
@@ -63,12 +63,13 @@ 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 "
|
||||
"the base name of the path instead of the entire path. This is not guaranteed "
|
||||
"to be unique.",
|
||||
default=False,
|
||||
required=False,
|
||||
|
@@ -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)
|
||||
|
@@ -6,3 +6,4 @@ dependencies:
|
||||
- pytest=7.2.2
|
||||
- twine=4.0.2
|
||||
- python=3.11
|
||||
prefix: ./env
|
3
requirements.txt
Normal file
3
requirements.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
build
|
||||
pytest
|
||||
twine
|
Reference in New Issue
Block a user