Skip to content

Commit

Permalink
Merge pull request #281 from opensafely-core/bump-jobrunner
Browse files Browse the repository at this point in the history
feat: Update job-runner to v2.75.1
  • Loading branch information
alarthast authored Oct 18, 2024
2 parents 3292b65 + 3a737e8 commit e41ffb8
Show file tree
Hide file tree
Showing 84 changed files with 446 additions and 14,940 deletions.
2 changes: 1 addition & 1 deletion opensafely/_vendor/chardet-3.0.4.dist-info/RECORD
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
../../bin/chardetect,sha256=Iim50Xo_A-6jNKXhng0od1YWXEr5OEzrv2MBb1TfLes,256
../../bin/chardetect,sha256=ev_GV213bCHkAMnQeo3ii08Fv8sI1fEHaNtuxa8jZC0,253
chardet-3.0.4.dist-info/DESCRIPTION.rst,sha256=PQ4sBsMyKFZkjC6QpmbpLn0UtCNyeb-ZqvCGEgyZMGk,2174
chardet-3.0.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
chardet-3.0.4.dist-info/METADATA,sha256=RV_2I4B1Z586DL8oVO5Kp7X5bUdQ5EuKAvNoAEF8wSw,3239
Expand Down
2 changes: 1 addition & 1 deletion opensafely/_vendor/distro-1.8.0.dist-info/RECORD
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
../../bin/distro,sha256=LL7TkGdbIp5yO7jgBe9K5tlwiCJXMlG9hKhj5qmlETo,247
../../bin/distro,sha256=EWDFjO47mPtktTsN5OHU1gFevw6eIf_IooN8WrxphJM,244
distro-1.8.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
distro-1.8.0.dist-info/LICENSE,sha256=y16Ofl9KOYjhBjwULGDcLfdWBfTEZRXnduOspt-XbhQ,11325
distro-1.8.0.dist-info/METADATA,sha256=NhYw94UPXb78_Z3_VtLxTJ1zQgUUKoTndg10uKJX800,6915
Expand Down
2 changes: 1 addition & 1 deletion opensafely/_vendor/jobrunner/actions.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ def get_action_specification(config, action_id, using_dummy_data_backend=False):
return ActionSpecification(
run=run_command,
needs=action_spec.needs,
outputs=action_spec.outputs.dict(exclude_unset=True),
outputs=action_spec.outputs.dict(),
action=action_spec,
)

Expand Down
21 changes: 13 additions & 8 deletions opensafely/_vendor/jobrunner/cli/kill_job.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,20 +55,25 @@ def get_jobs(partial_job_ids):
jobs = []
need_confirmation = False
for partial_job_id in partial_job_ids:
matches = database.find_where(Job, id__like=f"%{partial_job_id}%")
if len(matches) == 0:
# look for partial matches
partial_matches = database.find_where(Job, id__like=f"%{partial_job_id}%")
if len(partial_matches) == 0:
raise RuntimeError(f"No jobs found matching '{partial_job_id}'")
elif len(matches) > 1:
elif len(partial_matches) > 1:
print(f"Multiple jobs found matching '{partial_job_id}':")
for i, job in enumerate(matches, start=1):
for i, job in enumerate(partial_matches, start=1):
print(f" {i}: {job.slug}")
print()
index = int(input("Enter number: "))
assert 0 < index <= len(matches)
jobs.append(matches[index - 1])
assert 0 < index <= len(partial_matches)
jobs.append(partial_matches[index - 1])
else:
need_confirmation = True
jobs.append(matches[0])
# We only need confirmation if the supplied job ID doesn't exactly
# match the found job
job = partial_matches[0]
if job.id != partial_job_id:
need_confirmation = True
jobs.append(job)
if need_confirmation:
print("About to kill jobs:")
for job in jobs:
Expand Down
2 changes: 2 additions & 0 deletions opensafely/_vendor/jobrunner/executors/local.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,9 @@ def execute(self, job_definition):
label=LABEL,
labels=get_job_labels(job_definition),
extra_args=extra_args,
volume_type=volume_api.volume_type,
)

except Exception as exc:
return JobStatus(
ExecutorState.ERROR, f"Failed to start docker container: {exc}"
Expand Down
2 changes: 2 additions & 0 deletions opensafely/_vendor/jobrunner/executors/volumes.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ class DockerVolumeAPI:
# don't run with UIDs for now. We maybe be able to support this in future.
requires_root = True
supported_platforms = ("linux", "win32", "darwin")
volume_type = "volume" # https://docs.docker.com/engine/storage/volumes/

def volume_name(job):
return docker_volume_name(job)
Expand Down Expand Up @@ -93,6 +94,7 @@ class BindMountVolumeAPI:
# Only works running jobs with uid:gid
requires_root = False
supported_platforms = ("linux",)
volume_type = "bind" # https://docs.docker.com/engine/storage/bind-mounts/

def volume_name(job):
"""Return the absolute path to the volume directory.
Expand Down
2 changes: 1 addition & 1 deletion opensafely/_vendor/jobrunner/lib/database.py
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ def get_connection(filename=None):
# Looks icky but is documented `threading.local` usage
cache = CONNECTION_CACHE.__dict__
if filename not in cache:
conn = sqlite3.connect(filename)
conn = sqlite3.connect(filename, uri=True)
# Enable autocommit so changes made outside of a transaction still get
# persisted to disk. We can use explicit transactions when we need
# atomicity.
Expand Down
5 changes: 4 additions & 1 deletion opensafely/_vendor/jobrunner/lib/docker.py
Original file line number Diff line number Diff line change
Expand Up @@ -405,6 +405,7 @@ def run(
label=None,
labels=None,
extra_args=None,
volume_type="volume",
):
run_args = ["run", "--init", "--detach", "--label", LABEL, "--name", name]
if extra_args is not None:
Expand All @@ -413,7 +414,9 @@ def run(
if not allow_network_access:
run_args.extend(["--network", "none"])
if volume:
run_args.extend(["--volume", f"{volume[0]}:{volume[1]}"])
run_args.extend(
["--mount", f"type={volume_type},source={volume[0]},target={volume[1]}"]
)
# These lables are in addition to the default LABEL which is always applied
# Single unary label
if label is not None:
Expand Down
19 changes: 15 additions & 4 deletions opensafely/_vendor/jobrunner/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,10 +89,21 @@ def maintenance_wrapper():
time.sleep(config.MAINTENANCE_POLL_INTERVAL)


DB_MAINTENANCE_MODE = "db-maintenance"


def maintenance_mode():
"""Check if the db is currently in maintenance mode, and set flags as appropriate."""
# This did not seem big enough to warrant splitting into a separate module.
log.info("checking if db undergoing maintenance...")

# manually setting this flag bypasses the automaticaly check
manual_db_mode = get_flag_value("manual-db-maintenance")
if manual_db_mode:
log.info(f"manually set db mode: {DB_MAINTENANCE_MODE}")
return DB_MAINTENANCE_MODE

# detect db mode from TPP.
current = get_flag_value("mode")
ps = docker(
[
Expand All @@ -111,14 +122,14 @@ def maintenance_mode():
text=True,
)
last_line = ps.stdout.strip().split("\n")[-1]
if "db-maintenance" in last_line:
if current != "db-maintenance":
if DB_MAINTENANCE_MODE in last_line:
if current != DB_MAINTENANCE_MODE:
log.warning("Enabling DB maintenance mode")
else:
log.warning("DB maintenance mode is currently enabled")
set_flag("mode", "db-maintenance")
set_flag("mode", DB_MAINTENANCE_MODE)
else:
if current == "db-maintenance":
if current == DB_MAINTENANCE_MODE:
log.info("DB maintenance mode had ended")
set_flag("mode", None)

Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from opensafely_jobrunner-2.75.1.dist-info import *
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: opensafely-jobrunner
Version: 2.74.1
Version: 2.75.1
Summary: OpenSAFELY job scheduling and executor
Author-email: OpenSAFELY <[email protected]>
License: OpenSAFELY Job Runner
Expand All @@ -26,7 +26,7 @@ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: opensafely-pipeline@ git+https://github.com/opensafely-core/pipeline@v2024.03.19.153938
Requires-Dist: opensafely-pipeline@ git+https://github.com/opensafely-core/pipeline@v2024.10.11.170331
Requires-Dist: ruyaml
Requires-Dist: requests
Requires-Dist: opentelemetry-exporter-otlp-proto-http
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
../../bin/add_job,sha256=auF1lMohrk8Fk05a3Ezlpi8IVlS7xVzeZReWtP-IsWw,255
../../bin/flags,sha256=epygIZezoksuFAsTDKYklZoNvcE9q_H-HxEQ6sV_Ppo,253
../../bin/kill_job,sha256=jHNhQDHDyPzXXTpvr1vkB76xacBvcPy7vci3pAzPmxc,256
../../bin/local_run,sha256=Wffot83T6YFDtKAVtlQm6c9mGigY7F1jCBIKgds8OVk,257
../../bin/migrate,sha256=wd49OrcUdgPqBacylXP1JhbH961m-gRtcsa5sdMHzTo,255
../../bin/prepare_for_reboot,sha256=oY3JNDwuV91RqasOVovpZWkfEUGo5WhVxNf2nOA9Bk0,266
../../bin/retry_job,sha256=t_oJk2Zi_rocmK5tmd2k3qRCQ0Ec_nC1PLCYa_O95XY,257
../../bin/add_job,sha256=4i-IezAZRGeeMvFBxS9v6JDhmFVkz0sTpvZ_oOq3Uik,250
../../bin/flags,sha256=J8f8-8-IC6Wa9XL0P_rRkDB2nSQAobMM74MuG-QwFWE,248
../../bin/kill_job,sha256=fDFVGEQo4wnT40jzYohH9ahWCd1S_s2IZyRoomMAEUM,251
../../bin/local_run,sha256=j4F_xAmlJecFsSJqcK-B3cnwsvu3By3ZcvUGhSo463k,252
../../bin/migrate,sha256=JPDcv6NoUBUwQVyxuvMLsy-0gpeAyzH-vs-6v5PueDs,250
../../bin/prepare_for_reboot,sha256=aTrALVp3T81BfBOpgoBAjAuelIi33HotwZB8uOdQK6E,261
../../bin/retry_job,sha256=f7uUzVoXgipH-thuUJT-WrWQ6iz1LJT07SsPABHY0JM,252
jobrunner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
jobrunner/actions.py,sha256=bGcLGnsgTKW9mHkZSiN5HdauFADCiUu6v_VlsWhNAOc,3128
jobrunner/actions.py,sha256=a7IqxeJ3H1MLUP-rYxApd59PbTY_N0VUs6wAbnTwyiU,3110
jobrunner/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
jobrunner/cli/add_job.py,sha256=hbOFNJx4bUTXch3IriMOwUG66lfOHIbyGnTdPYnCvmA,2968
jobrunner/cli/flags.py,sha256=6dFPWab0vB6CGCLg5yMAp9iQJo8Y6rN5cfQ7bEXhgqs,2704
jobrunner/cli/kill_job.py,sha256=_cTNi-JjirvCVfK2vSs2SQYREkCiyj2jLeNG4yYaZAc,3333
jobrunner/cli/kill_job.py,sha256=RSICZF_Ub29XimTDExJFwR9-ZoaPe17W21P_dtsy5PE,3604
jobrunner/cli/local_run.py,sha256=iWfbL4DZ0dXSqNkNCF5XdkdY0Hnc7_EH0NfZfvl7YVA,25719
jobrunner/cli/manifests.py,sha256=dVFDE4OLmS75HHaWxWqToDz4ZdpLL1mJh_3sH4Ff43c,5619
jobrunner/cli/migrate.py,sha256=V2cI3Kee67DNhqJUiDnALNvzHlP4mx_myKQycD4E9uI,609
Expand All @@ -19,13 +19,13 @@ jobrunner/cli/retry_job.py,sha256=qDTiYwxc59QYZBLfgv_t-CAa6kmmhiCKh0sLpv5xhwA,24
jobrunner/config.py,sha256=HU1SNXMzjyDNQO0pqFvNaoeOZyheO8QnGJlf5GdOxT8,9531
jobrunner/create_or_update_jobs.py,sha256=eA-wK0VwWwRFF5_t8Qfz4ddCOL5COnNyAAXCZWKuTgY,15344
jobrunner/executors/__init__.py,sha256=4-eu9LwIzhALtsq1LDC9NQ_5nbcjsPDdIEGvRvZwIbo,283
jobrunner/executors/local.py,sha256=fXUOiNg4uqMZswGeYhnnvS6YM23SnVGJwS80U6fjbYs,35423
jobrunner/executors/local.py,sha256=m30PLiwHUaZ4nIpi5KaMtqHFesBBvEmIRBOGH1rFjrY,35476
jobrunner/executors/logging.py,sha256=iCISXFR8sbtCrp-E3jaQlC1Kw6Huf65b-dqomrJzywI,2104
jobrunner/executors/volumes.py,sha256=H8lISCydAyi9-g3p344KkwVhNhrqfWO5RO-NZRFVM5c,7102
jobrunner/executors/volumes.py,sha256=VgyeEUxRg_v5ZpZ1iYlc8IuqLh9cCi_HBBpj5yrIYD0,7260
jobrunner/job_executor.py,sha256=523lwyHQRPeup6dZKC-hLjW_LYCb9ppiR0tZGLssHr4,13928
jobrunner/lib/__init__.py,sha256=EwrN6m71VpDCvi-vTzcuIvelJ6gZOBB1rf5KyF13xjc,4388
jobrunner/lib/database.py,sha256=AWwUI9AdVNSIKhyqt8H4p0bIuBQ7DUbkgYHlBgq2__Q,12590
jobrunner/lib/docker.py,sha256=C2fp3quN4vkaqg2MvMNC_k6Zbz8awN-oFtFuSLqA6xY,15825
jobrunner/lib/database.py,sha256=uQTxjOz6M_LIE9nZIFQsadzq5Xt4_120F6ErJUUsDHc,12600
jobrunner/lib/docker.py,sha256=4d_ngAW8t8VyhhzRq0W9ylMByxXCMGMpJ23z7u0H0eU,15905
jobrunner/lib/docker_stats.py,sha256=PBx1eU7Rax-Q-fRLKXGSvFv-UD6IYIEENqH6_hoWpKU,1357
jobrunner/lib/git.py,sha256=5Bw3bRk4EJaNEmcOADFk8Ww_NHeF5GtqDpJ5rR3KYFA,13145
jobrunner/lib/github_validators.py,sha256=3YW04zbYz15lnGXjQ3XHrsaH1VyRX_kmd6lF4vyTKM8,2412
Expand All @@ -40,15 +40,15 @@ jobrunner/queries.py,sha256=EsBtoRsFr_dCqHOKu44Sgxjdgmfnzd0dfOQYogNITYo,2225
jobrunner/record_stats.py,sha256=etCjpOyv0zT2gxagDnaovbiAuUfLUwildDWDtL3I_RE,7567
jobrunner/reusable_actions.py,sha256=yt9qSKXUPIPxI-2wM7tgUFJdQlOMneqZqqT8JUpVQow,7683
jobrunner/run.py,sha256=gr2GIrplwgKVHQqzVZUSKftcp8cF-wOOi4fGtR3QZ1U,27565
jobrunner/service.py,sha256=MhppSwuGiDTrkcduxGfmHLoUpD1Ao0fRI2lfuQkb11Y,4182
jobrunner/service.py,sha256=itTF4mpuh9wso6vliU92Ml-EnAkjgQQiUejLqfIP8ZE,4517
jobrunner/sync.py,sha256=nRyHluwAxQjSNw36xpq5sJXhJNLmtREOHjFjhCT7P7A,5127
jobrunner/tracing.py,sha256=F_q9wM7Do5u5GroGvqTL1VW5vElr092wg_L3CMFBHaE,13144
opensafely_jobrunner-2.74.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
opensafely_jobrunner-2.74.1.dist-info/LICENSE,sha256=F5fS3mizkbW4yOk3XP--G0oDJbZAovAKuSIZShtkCw4,671
opensafely_jobrunner-2.74.1.dist-info/METADATA,sha256=HumP74hsF-6zd8Em2KQgtDOLIKFye2JbYn_QCDz--Hs,8211
opensafely_jobrunner-2.74.1.dist-info/RECORD,,
opensafely_jobrunner-2.74.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
opensafely_jobrunner-2.74.1.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
opensafely_jobrunner-2.74.1.dist-info/direct_url.json,sha256=mfNX3sM6Fdj5fLMywICmzf-i4KV4qcNFRjJ6bBFzIy0,174
opensafely_jobrunner-2.74.1.dist-info/entry_points.txt,sha256=hat6DNe6ZtwPqk0GIs5BOzd-18yfWfwJrouA1YAmBJY,298
opensafely_jobrunner-2.74.1.dist-info/top_level.txt,sha256=dHLIHTr12iPEGMfrfPkXrkh8qGsw52DE0cbpHQVbiic,10
opensafely_jobrunner-2.75.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
opensafely_jobrunner-2.75.1.dist-info/LICENSE,sha256=F5fS3mizkbW4yOk3XP--G0oDJbZAovAKuSIZShtkCw4,671
opensafely_jobrunner-2.75.1.dist-info/METADATA,sha256=LnQf9pvevzeoUtYQiGQQnntFMsU58JwwmeC3DGX6pmE,8211
opensafely_jobrunner-2.75.1.dist-info/RECORD,,
opensafely_jobrunner-2.75.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
opensafely_jobrunner-2.75.1.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
opensafely_jobrunner-2.75.1.dist-info/direct_url.json,sha256=Cdkkdym_cmyBqNv5x7MyPcpJar4kQ23ZLIp1fKJ122w,174
opensafely_jobrunner-2.75.1.dist-info/entry_points.txt,sha256=hat6DNe6ZtwPqk0GIs5BOzd-18yfWfwJrouA1YAmBJY,298
opensafely_jobrunner-2.75.1.dist-info/top_level.txt,sha256=dHLIHTr12iPEGMfrfPkXrkh8qGsw52DE0cbpHQVbiic,10
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Wheel-Version: 1.0
Generator: setuptools (75.1.0)
Generator: setuptools (75.2.0)
Root-Is-Purelib: true
Tag: py3-none-any

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"url": "https://github.com/opensafely-core/job-runner", "vcs_info": {"commit_id": "04847b88be27e4fddc5c212d9ba847a6c91e970b", "requested_revision": "v2.75.1", "vcs": "git"}}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from opensafely_pipeline-2024.10.11.170331.dist-info import *
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: opensafely-pipeline
Version: 2024.3.19.153938
Version: 2024.10.11.170331
Summary: OpenSAFELY pipeline configuration parsing library
Author-email: OpenSAFELY <[email protected]>
License: ${GITHUB_REPOSITORY_NAME}
Expand All @@ -26,8 +26,10 @@ Classifier: License :: OSI Approved :: GNU General Public License v3 or later (G
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pydantic <2
Requires-Dist: ruyaml
Provides-Extra: fastparser
Requires-Dist: ruamel-yaml==0.18.6; extra == "fastparser"
Requires-Dist: ruamel-yaml-clib==0.2.8; extra == "fastparser"

# OpenSAFELY Pipeline Parser

Expand All @@ -39,7 +41,7 @@ For example:
data = load_pipeline(f.read())


The returned object is a Pydantic model, `Pipeline`, defined in `pipeline/models.py`.
The returned object is an instance of `pipeline.models.Pipeline`.


## Developer docs
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
opensafely_pipeline-2024.10.11.170331.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
opensafely_pipeline-2024.10.11.170331.dist-info/LICENSE,sha256=3dYRqvpnIRI1ISbzwG_EKRHulT5qzYLacVDM09Ehn5Y,675
opensafely_pipeline-2024.10.11.170331.dist-info/METADATA,sha256=faRr_pwGJi4yv35Rz3hS5q4CxflVPooNKODk92nyw8Q,1931
opensafely_pipeline-2024.10.11.170331.dist-info/RECORD,,
opensafely_pipeline-2024.10.11.170331.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
opensafely_pipeline-2024.10.11.170331.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
opensafely_pipeline-2024.10.11.170331.dist-info/direct_url.json,sha256=9KCk1lwhmjztvze5CoLYaSdkMZqjTY-ZfoTyxLkJCZo,183
opensafely_pipeline-2024.10.11.170331.dist-info/top_level.txt,sha256=Qdc1eKrvhKK_o9CPbdooOdDt7g3ZSXZDrNXHmUGl94Q,9
pipeline/__init__.py,sha256=OXi7WT9uT8zmpPCJY5mh7DCBiSdRg7D6EFOT-wNTulM,236
pipeline/__main__.py,sha256=5hAi8GJDuS0ufV6IA9TP91SPQphoJQjdBTtBHzPeIQQ,471
pipeline/constants.py,sha256=YYp4huzWNFIaimLP9AbiW1eDLaRaS2c6tHYW_GRb19c,354
pipeline/exceptions.py,sha256=aeRYcjMhpgkhdRyQka-yK4X2vxRqa3wg6LG-lYI67Tw,196
pipeline/features.py,sha256=z-Gs7TaX-9YqBYGt0zLiVeZT_aU1VRMjmPJGb-7t4wI,972
pipeline/legacy.py,sha256=hfxBHpEXO6VbqHcg_cqKUb_lVKmq0hVbhwYaXkACkf8,405
pipeline/loading.py,sha256=HUh-uOOVTh6VBLi3xUvwyEP91155Z_IPp2Mimcm-PPk,3929
pipeline/main.py,sha256=t8KyXsNdZvCeEq5LFR7xJtV6aq4OvJidL24K0_580ro,990
pipeline/models.py,sha256=Z70X0x9WX7NcQn7l3cVhFQgKhDMFwtQAMnpanMi6xWo,10943
pipeline/outputs.py,sha256=rAzXgaFLsm8wZXkBLS1EsLFBid6UmsnitiqnnqZMLtg,763
pipeline/validation.py,sha256=EGr86QjK9tOzw3_u4bhU2C-aqoX08RWXKLz7ZtL4_fM,5646
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Wheel-Version: 1.0
Generator: bdist_wheel (0.43.0)
Generator: setuptools (75.2.0)
Root-Is-Purelib: true
Tag: py3-none-any

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"url": "https://github.com/opensafely-core/pipeline", "vcs_info": {"commit_id": "4e202a4b2d1b0b56f37deaeea429ab55522e7d4d", "requested_revision": "v2024.10.11.170331", "vcs": "git"}}

This file was deleted.

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion opensafely/_vendor/pipeline/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
".svgz",
# reports
".html",
".pdf",
".txt",
".log",
".json",
Expand Down
4 changes: 4 additions & 0 deletions opensafely/_vendor/pipeline/exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,7 @@ class InvalidPatternError(ProjectValidationError):

class YAMLError(Exception):
pass


class ValidationError(Exception):
pass
Loading

0 comments on commit e41ffb8

Please sign in to comment.