From 410723ca114f0584bf1325463ebf926e216040a7 Mon Sep 17 00:00:00 2001 From: Tom Young <39765193+t-young31@users.noreply.github.com> Date: Fri, 18 Nov 2022 15:38:17 +0000 Subject: [PATCH] Add headers and lint (#72) * Add headers and CI lint * Fix black lint missed in #71 * Indents and remove "and Microsoft" --- .github/linters/check_headers_exist.sh | 26 +++++++++++++++++++ .github/workflows/main.yml | 19 +++++++++++++- bin/down.sh | 24 +++++++---------- bin/run-all-tests.sh | 24 +++++++---------- bin/up.sh | 24 +++++++---------- cli/src/pixl_cli/__init__.py | 13 ++++++++++ cli/src/pixl_cli/_logging.py | 13 ++++++++++ cli/src/pixl_cli/_utils.py | 13 ++++++++++ cli/src/pixl_cli/main.py | 13 ++++++++++ cli/src/pixl_cli/tests/__init__.py | 13 ++++++++++ .../tests/test_queue_start_and_stop.py | 13 ++++++++++ cli/src/setup.py | 13 ++++++++++ cli/test/docker-compose.yml | 13 ++++++++++ cli/test/pixl_config.yml | 13 ++++++++++ cli/test/run-tests.sh | 16 +++++++++++- docker-compose.yml | 13 ++++++++++ docker/ehr-api/Dockerfile | 13 ++++++++++ docker/hasher-api/Dockerfile | 13 ++++++++++ docker/orthanc-anon/Dockerfile | 13 ++++++++++ docker/orthanc-raw/Dockerfile | 13 ++++++++++ docker/postgres/Dockerfile | 13 ++++++++++ hasher/bin/run-tests.sh | 24 +++++++---------- .../orthanc-anon/plugin/tag-operations.yaml | 13 ++++++++++ pixl_dcmd/bin/run-tests.sh | 24 +++++++---------- pixl_ehr/src/pixl_ehr/__init__.py | 13 ++++++++++ pixl_ehr/src/pixl_ehr/_databases.py | 13 ++++++++++ pixl_ehr/src/pixl_ehr/_processing.py | 13 ++++++++++ pixl_ehr/src/pixl_ehr/_queries.py | 13 ++++++++++ pixl_ehr/src/pixl_ehr/main.py | 13 ++++++++++ pixl_ehr/src/pixl_ehr/tests/__init__.py | 13 ++++++++++ pixl_ehr/src/pixl_ehr/tests/test_app.py | 13 ++++++++++ .../src/pixl_ehr/tests/test_processing.py | 13 ++++++++++ pixl_ehr/src/pixl_ehr/utils.py | 13 ++++++++++ pixl_ehr/src/setup.py | 13 ++++++++++ pixl_ehr/test/Dockerfile.fake_emap_star | 2 +- pixl_ehr/test/docker-compose.yml | 13 ++++++++++ pixl_ehr/test/run-lint-and-api-tests.sh | 16 +++++++++++- pixl_ehr/test/run-processing-tests.sh | 16 +++++++++++- pixl_ehr/test/run-tests.sh | 20 +++++++------- pixl_rd/bin/run-tests.sh | 24 +++++++---------- pixl_rd/src/pixl_rd/main.py | 13 ++++++++++ postgres/pixl-db_init.sh | 14 ++++++++++ token_buffer/bin/run-tests.sh | 24 +++++++---------- token_buffer/src/token_buffer/tokens.py | 4 +-- 44 files changed, 550 insertions(+), 115 deletions(-) create mode 100755 .github/linters/check_headers_exist.sh diff --git a/.github/linters/check_headers_exist.sh b/.github/linters/check_headers_exist.sh new file mode 100755 index 000000000..2542f211f --- /dev/null +++ b/.github/linters/check_headers_exist.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +for ext in ".yml" ".yaml" ".sh" "Dockerfile" ".py" +do + # shellcheck disable=SC2044 + for path in $(find . -name "*$ext") + do + if ! grep -q "Copyright" "$path"; then + echo -e "\n\e[31m»»» ⚠️ No copyright/license header in $path" + exit 1 + fi + done || exit 1 +done diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bbdd0e550..a7c66b3c6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. name: pixl-ci on: @@ -12,12 +25,16 @@ on: jobs: - validate-docker-compose-config-file: + lint: runs-on: ubuntu-22.04 timeout-minutes: 5 steps: - name: Checkout uses: actions/checkout@v3 + + - name: Ensure copyright and license header are present + run: ./.github/linters/check_headers_exist.sh + - name: Validate Docker Compose config file working-directory: . run: | diff --git a/bin/down.sh b/bin/down.sh index 77c36f88a..511200e2a 100755 --- a/bin/down.sh +++ b/bin/down.sh @@ -1,21 +1,17 @@ #!/usr/bin/env bash - -# -# Copyright (c) 2022 University College London Hospitals NHS Foundation Trust +# Copyright (c) University College London Hospitals NHS Foundation Trust # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. set -o errexit -o pipefail -o noclobber diff --git a/bin/run-all-tests.sh b/bin/run-all-tests.sh index 65c5ef5d5..08c269d6e 100755 --- a/bin/run-all-tests.sh +++ b/bin/run-all-tests.sh @@ -1,21 +1,17 @@ #!/usr/bin/env bash - -# -# Copyright (c) 2022 University College London Hospitals NHS Foundation Trust +# Copyright (c) University College London Hospitals NHS Foundation Trust # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. set -eo pipefail BIN_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" diff --git a/bin/up.sh b/bin/up.sh index 67ee64c1f..bb3b60926 100755 --- a/bin/up.sh +++ b/bin/up.sh @@ -1,21 +1,17 @@ #!/usr/bin/env bash - -# -# Copyright (c) 2022 University College London Hospitals NHS Foundation Trust +# Copyright (c) University College London Hospitals NHS Foundation Trust # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. set -o errexit -o pipefail -o noclobber diff --git a/cli/src/pixl_cli/__init__.py b/cli/src/pixl_cli/__init__.py index 63cdf08cd..b9efde1fe 100644 --- a/cli/src/pixl_cli/__init__.py +++ b/cli/src/pixl_cli/__init__.py @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. from pixl_cli.main import cli __all__ = ["cli"] diff --git a/cli/src/pixl_cli/_logging.py b/cli/src/pixl_cli/_logging.py index eb3b639f1..ffcf9049b 100644 --- a/cli/src/pixl_cli/_logging.py +++ b/cli/src/pixl_cli/_logging.py @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. import logging import coloredlogs diff --git a/cli/src/pixl_cli/_utils.py b/cli/src/pixl_cli/_utils.py index b831205eb..f9a559c5d 100644 --- a/cli/src/pixl_cli/_utils.py +++ b/cli/src/pixl_cli/_utils.py @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. from pathlib import Path diff --git a/cli/src/pixl_cli/main.py b/cli/src/pixl_cli/main.py index 87ee2e771..f127a0dda 100644 --- a/cli/src/pixl_cli/main.py +++ b/cli/src/pixl_cli/main.py @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. import json import os from pathlib import Path diff --git a/cli/src/pixl_cli/tests/__init__.py b/cli/src/pixl_cli/tests/__init__.py index e69de29bb..ff5b83333 100644 --- a/cli/src/pixl_cli/tests/__init__.py +++ b/cli/src/pixl_cli/tests/__init__.py @@ -0,0 +1,13 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/cli/src/pixl_cli/tests/test_queue_start_and_stop.py b/cli/src/pixl_cli/tests/test_queue_start_and_stop.py index 4f405dd10..b64f56498 100644 --- a/cli/src/pixl_cli/tests/test_queue_start_and_stop.py +++ b/cli/src/pixl_cli/tests/test_queue_start_and_stop.py @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. import os from pathlib import Path from typing import Any diff --git a/cli/src/setup.py b/cli/src/setup.py index da7937b0b..02b3553d3 100644 --- a/cli/src/setup.py +++ b/cli/src/setup.py @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. from setuptools import setup, find_packages exec(open("pixl_cli/_version.py").read()) diff --git a/cli/test/docker-compose.yml b/cli/test/docker-compose.yml index 9e369f028..ba78061a1 100644 --- a/cli/test/docker-compose.yml +++ b/cli/test/docker-compose.yml @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. version: "3.8" services: diff --git a/cli/test/pixl_config.yml b/cli/test/pixl_config.yml index f493013ce..e9a9e6e11 100644 --- a/cli/test/pixl_config.yml +++ b/cli/test/pixl_config.yml @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. rabbitmq: host: localhost port: 5672 diff --git a/cli/test/run-tests.sh b/cli/test/run-tests.sh index 2c979128a..da48d4fe3 100755 --- a/cli/test/run-tests.sh +++ b/cli/test/run-tests.sh @@ -1,4 +1,18 @@ #!/usr/bin/env bash +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + # Copyright (c) 2022 University College London Hospitals NHS Foundation Trust # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -11,7 +25,7 @@ # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and -# limitations under the License. +# limitations under the License. set -euxo pipefail THIS_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) diff --git a/docker-compose.yml b/docker-compose.yml index 99c0b721f..0d9bf4c59 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. version: "3.8" ################################################################################ diff --git a/docker/ehr-api/Dockerfile b/docker/ehr-api/Dockerfile index 650f9212d..488aee8e1 100644 --- a/docker/ehr-api/Dockerfile +++ b/docker/ehr-api/Dockerfile @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. FROM python:3.10.6-slim-bullseye SHELL ["/bin/bash", "-o", "pipefail", "-e", "-u", "-x", "-c"] diff --git a/docker/hasher-api/Dockerfile b/docker/hasher-api/Dockerfile index 2aac30d5a..14252a846 100644 --- a/docker/hasher-api/Dockerfile +++ b/docker/hasher-api/Dockerfile @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. FROM python:3.10.7-slim-bullseye SHELL ["/bin/bash", "-o", "pipefail", "-e", "-u", "-x", "-c"] diff --git a/docker/orthanc-anon/Dockerfile b/docker/orthanc-anon/Dockerfile index 7364c44df..d148dd220 100644 --- a/docker/orthanc-anon/Dockerfile +++ b/docker/orthanc-anon/Dockerfile @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. FROM osimis/orthanc:22.9.0-full-stable SHELL ["/bin/bash", "-o", "pipefail", "-e", "-u", "-x", "-c"] diff --git a/docker/orthanc-raw/Dockerfile b/docker/orthanc-raw/Dockerfile index 71cee520b..ec74df045 100644 --- a/docker/orthanc-raw/Dockerfile +++ b/docker/orthanc-raw/Dockerfile @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. FROM osimis/orthanc:22.9.0-full-stable SHELL ["/bin/bash", "-o", "pipefail", "-e", "-u", "-x", "-c"] diff --git a/docker/postgres/Dockerfile b/docker/postgres/Dockerfile index 249ad3f9d..6eaf7d2dd 100644 --- a/docker/postgres/Dockerfile +++ b/docker/postgres/Dockerfile @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. FROM postgres:14-bullseye # OS setup diff --git a/hasher/bin/run-tests.sh b/hasher/bin/run-tests.sh index b578b2c98..b6f08747c 100755 --- a/hasher/bin/run-tests.sh +++ b/hasher/bin/run-tests.sh @@ -1,21 +1,17 @@ #!/usr/bin/env bash - -# -# Copyright (c) 2022 University College London Hospitals NHS Foundation Trust +# Copyright (c) University College London Hospitals NHS Foundation Trust # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. set -eo pipefail BIN_DIR=$(cd $(dirname ${BASH_SOURCE[0]}) && pwd) diff --git a/orthanc/orthanc-anon/plugin/tag-operations.yaml b/orthanc/orthanc-anon/plugin/tag-operations.yaml index 16d9feb5e..10a049e5d 100644 --- a/orthanc/orthanc-anon/plugin/tag-operations.yaml +++ b/orthanc/orthanc-anon/plugin/tag-operations.yaml @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. - name: "Specific Character Set" group: 0x0008 element: 0x0005 diff --git a/pixl_dcmd/bin/run-tests.sh b/pixl_dcmd/bin/run-tests.sh index a3f122362..5dbed5d4f 100755 --- a/pixl_dcmd/bin/run-tests.sh +++ b/pixl_dcmd/bin/run-tests.sh @@ -1,21 +1,17 @@ #!/usr/bin/env bash - -# -# Copyright (c) 2022 University College London Hospitals NHS Foundation Trust +# Copyright (c) University College London Hospitals NHS Foundation Trust # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. set -eo pipefail BIN_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) diff --git a/pixl_ehr/src/pixl_ehr/__init__.py b/pixl_ehr/src/pixl_ehr/__init__.py index e69de29bb..ff5b83333 100644 --- a/pixl_ehr/src/pixl_ehr/__init__.py +++ b/pixl_ehr/src/pixl_ehr/__init__.py @@ -0,0 +1,13 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/pixl_ehr/src/pixl_ehr/_databases.py b/pixl_ehr/src/pixl_ehr/_databases.py index 655a26d4c..975d283ba 100644 --- a/pixl_ehr/src/pixl_ehr/_databases.py +++ b/pixl_ehr/src/pixl_ehr/_databases.py @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. import logging from typing import List, Optional diff --git a/pixl_ehr/src/pixl_ehr/_processing.py b/pixl_ehr/src/pixl_ehr/_processing.py index 785de9896..1a29d5d9e 100644 --- a/pixl_ehr/src/pixl_ehr/_processing.py +++ b/pixl_ehr/src/pixl_ehr/_processing.py @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. from abc import ABC, abstractmethod from copy import deepcopy from dataclasses import dataclass diff --git a/pixl_ehr/src/pixl_ehr/_queries.py b/pixl_ehr/src/pixl_ehr/_queries.py index ceca118c8..fdfe1e70c 100644 --- a/pixl_ehr/src/pixl_ehr/_queries.py +++ b/pixl_ehr/src/pixl_ehr/_queries.py @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. from pathlib import Path from typing import List diff --git a/pixl_ehr/src/pixl_ehr/main.py b/pixl_ehr/src/pixl_ehr/main.py index 4ce03f20d..5bf52aa92 100644 --- a/pixl_ehr/src/pixl_ehr/main.py +++ b/pixl_ehr/src/pixl_ehr/main.py @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. import asyncio from dataclasses import dataclass import logging diff --git a/pixl_ehr/src/pixl_ehr/tests/__init__.py b/pixl_ehr/src/pixl_ehr/tests/__init__.py index e69de29bb..ff5b83333 100644 --- a/pixl_ehr/src/pixl_ehr/tests/__init__.py +++ b/pixl_ehr/src/pixl_ehr/tests/__init__.py @@ -0,0 +1,13 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/pixl_ehr/src/pixl_ehr/tests/test_app.py b/pixl_ehr/src/pixl_ehr/tests/test_app.py index 01882f46a..4dcf0daf1 100644 --- a/pixl_ehr/src/pixl_ehr/tests/test_app.py +++ b/pixl_ehr/src/pixl_ehr/tests/test_app.py @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. """ This file contains unit tests for the API that do not require any test services """ diff --git a/pixl_ehr/src/pixl_ehr/tests/test_processing.py b/pixl_ehr/src/pixl_ehr/tests/test_processing.py index f91456662..664078c06 100644 --- a/pixl_ehr/src/pixl_ehr/tests/test_processing.py +++ b/pixl_ehr/src/pixl_ehr/tests/test_processing.py @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. """ These tests require executing from within the EHR API container with the dependent services being up diff --git a/pixl_ehr/src/pixl_ehr/utils.py b/pixl_ehr/src/pixl_ehr/utils.py index 073b252d8..23144dff5 100644 --- a/pixl_ehr/src/pixl_ehr/utils.py +++ b/pixl_ehr/src/pixl_ehr/utils.py @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. import os diff --git a/pixl_ehr/src/setup.py b/pixl_ehr/src/setup.py index 92f2cbf2f..20ee5ab5c 100644 --- a/pixl_ehr/src/setup.py +++ b/pixl_ehr/src/setup.py @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. from setuptools import setup, find_packages exec(open("pixl_ehr/_version.py").read()) diff --git a/pixl_ehr/test/Dockerfile.fake_emap_star b/pixl_ehr/test/Dockerfile.fake_emap_star index 3ea775eda..0135cdfc1 100644 --- a/pixl_ehr/test/Dockerfile.fake_emap_star +++ b/pixl_ehr/test/Dockerfile.fake_emap_star @@ -10,7 +10,7 @@ # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and -# limitations under the License. +# limitations under the License. FROM postgres:15.0-bullseye # User definable arguments diff --git a/pixl_ehr/test/docker-compose.yml b/pixl_ehr/test/docker-compose.yml index dc232f9ed..7e3fe002e 100644 --- a/pixl_ehr/test/docker-compose.yml +++ b/pixl_ehr/test/docker-compose.yml @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. version: "3.8" services: diff --git a/pixl_ehr/test/run-lint-and-api-tests.sh b/pixl_ehr/test/run-lint-and-api-tests.sh index 028435370..b51819336 100755 --- a/pixl_ehr/test/run-lint-and-api-tests.sh +++ b/pixl_ehr/test/run-lint-and-api-tests.sh @@ -1,4 +1,18 @@ #!/usr/bin/env bash +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + # Copyright (c) 2022 University College London Hospitals NHS Foundation Trust # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -11,7 +25,7 @@ # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and -# limitations under the License. +# limitations under the License. set -euxo pipefail BIN_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) diff --git a/pixl_ehr/test/run-processing-tests.sh b/pixl_ehr/test/run-processing-tests.sh index 95da11c9f..68184801e 100755 --- a/pixl_ehr/test/run-processing-tests.sh +++ b/pixl_ehr/test/run-processing-tests.sh @@ -1,4 +1,18 @@ #!/usr/bin/env bash +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + # Copyright (c) 2022 University College London Hospitals NHS Foundation Trust # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -11,7 +25,7 @@ # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and -# limitations under the License. +# limitations under the License. set -euxo pipefail THIS_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) diff --git a/pixl_ehr/test/run-tests.sh b/pixl_ehr/test/run-tests.sh index e977f79f1..c89a77016 100755 --- a/pixl_ehr/test/run-tests.sh +++ b/pixl_ehr/test/run-tests.sh @@ -1,17 +1,17 @@ #!/usr/bin/env bash -# Copyright (c) 2022 University College London Hospitals NHS Foundation Trust +# Copyright (c) University College London Hospitals NHS Foundation Trust # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. set -euxo pipefail BIN_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) diff --git a/pixl_rd/bin/run-tests.sh b/pixl_rd/bin/run-tests.sh index b3d28554f..1665d271a 100755 --- a/pixl_rd/bin/run-tests.sh +++ b/pixl_rd/bin/run-tests.sh @@ -1,21 +1,17 @@ #!/usr/bin/env bash - -# -# Copyright (c) 2022 University College London Hospitals NHS Foundation Trust +# Copyright (c) University College London Hospitals NHS Foundation Trust # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. set -eo pipefail BIN_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) diff --git a/pixl_rd/src/pixl_rd/main.py b/pixl_rd/src/pixl_rd/main.py index 8c90347cf..fa33f4661 100644 --- a/pixl_rd/src/pixl_rd/main.py +++ b/pixl_rd/src/pixl_rd/main.py @@ -1,3 +1,16 @@ +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. from presidio_analyzer import AnalyzerEngine from presidio_anonymizer import AnonymizerEngine diff --git a/postgres/pixl-db_init.sh b/postgres/pixl-db_init.sh index 6689fd328..98ea081bb 100644 --- a/postgres/pixl-db_init.sh +++ b/postgres/pixl-db_init.sh @@ -1,4 +1,18 @@ #!/bin/bash +# Copyright (c) University College London Hospitals NHS Foundation Trust +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -o nounset psql -U "${POSTGRES_USER}" -tc "SELECT 1 FROM pg_database WHERE datname = '${PIXL_DB_NAME}'" |\ diff --git a/token_buffer/bin/run-tests.sh b/token_buffer/bin/run-tests.sh index 469f88fc4..19ee88b74 100755 --- a/token_buffer/bin/run-tests.sh +++ b/token_buffer/bin/run-tests.sh @@ -1,21 +1,17 @@ #!/usr/bin/env bash - -# -# Copyright (c) 2022 University College London Hospitals NHS Foundation Trust +# Copyright (c) University College London Hospitals NHS Foundation Trust # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. set -eo pipefail BIN_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) diff --git a/token_buffer/src/token_buffer/tokens.py b/token_buffer/src/token_buffer/tokens.py index 4d81d20c5..fb31af768 100644 --- a/token_buffer/src/token_buffer/tokens.py +++ b/token_buffer/src/token_buffer/tokens.py @@ -21,8 +21,8 @@ class TokenBucket(tb.Limiter): be downloaded. Should there be no more tokens inside the bucket, the request is added back into the queue. Note that the Limiter object can operate the rate on different "streams", which are specified by a string object, also called key. This - key has been hard coded here to "pixl" as we do not expect the token bucket to be responsible for more than one stream at - this point in time. + key has been hard coded here to "pixl" as we do not expect the token bucket to be + responsible for more than one stream at this point in time. """ key = b"pixl"