From 82ad5d2109b6b5a96f891e01b7e8de82e055a30a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pawe=C5=82=20Ludwik=C3=B3w?= <pawel.ludwikow@neptune.ai>
Date: Tue, 14 Jan 2025 12:03:42 +0100
Subject: [PATCH] feat: add license guards

---
 .github/license_header.txt                  | 14 ++++++++++++++
 .pre-commit-config.yaml                     |  6 ++++++
 src/neptune_scale/__init__.py               | 15 +++++++++++++++
 src/neptune_scale/api/__init__.py           | 15 +++++++++++++++
 src/neptune_scale/api/attribute.py          | 15 +++++++++++++++
 src/neptune_scale/api/run.py                | 15 +++++++++++++++
 src/neptune_scale/api/validation.py         | 15 +++++++++++++++
 src/neptune_scale/exceptions.py             | 15 +++++++++++++++
 src/neptune_scale/legacy.py                 | 15 +++++++++++++++
 src/neptune_scale/net/__init__.py           | 15 +++++++++++++++
 src/neptune_scale/net/projects.py           | 15 +++++++++++++++
 src/neptune_scale/net/runs.py               | 15 +++++++++++++++
 src/neptune_scale/net/serialization.py      | 15 +++++++++++++++
 src/neptune_scale/net/util.py               | 16 ++++++++++++++++
 src/neptune_scale/projects.py               | 15 +++++++++++++++
 src/neptune_scale/sync/__init__.py          | 14 ++++++++++++++
 src/neptune_scale/sync/aggregating_queue.py | 15 +++++++++++++++
 src/neptune_scale/sync/errors_tracking.py   | 15 +++++++++++++++
 src/neptune_scale/sync/lag_tracking.py      | 15 +++++++++++++++
 src/neptune_scale/sync/metadata_splitter.py | 15 +++++++++++++++
 src/neptune_scale/sync/operations_queue.py  | 15 +++++++++++++++
 src/neptune_scale/sync/parameters.py        | 15 +++++++++++++++
 src/neptune_scale/sync/queue_element.py     | 15 +++++++++++++++
 src/neptune_scale/sync/sync_process.py      | 15 +++++++++++++++
 src/neptune_scale/sync/util.py              | 15 +++++++++++++++
 src/neptune_scale/util/__init__.py          | 15 +++++++++++++++
 src/neptune_scale/util/abstract.py          | 15 +++++++++++++++
 src/neptune_scale/util/daemon.py            | 15 +++++++++++++++
 src/neptune_scale/util/envs.py              | 15 +++++++++++++++
 src/neptune_scale/util/logger.py            | 15 +++++++++++++++
 src/neptune_scale/util/process_killer.py    | 15 +++++++++++++++
 src/neptune_scale/util/process_link.py      | 15 +++++++++++++++
 src/neptune_scale/util/shared_var.py        | 15 +++++++++++++++
 src/neptune_scale/util/styles.py            | 15 +++++++++++++++
 34 files changed, 500 insertions(+)
 create mode 100644 .github/license_header.txt

diff --git a/.github/license_header.txt b/.github/license_header.txt
new file mode 100644
index 00000000..6b3f71c3
--- /dev/null
+++ b/.github/license_header.txt
@@ -0,0 +1,14 @@
+
+Copyright (c) 2025, Neptune Labs Sp. z o.o.
+
+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/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 73ef26dc..c228f7fd 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -32,5 +32,11 @@ repos:
           - neptune-api
           - more-itertools
           - backoff
+  - repo: https://github.com/Lucas-C/pre-commit-hooks
+    rev: v1.5.4
+    hooks:
+      - id: insert-license
+        files: ^src/neptune_scale.*[^/]+\.py$
+        args: [ "--license-filepath", ".github/license_header.txt", "--allow-past-years"]
 default_language_version:
   python: python3
diff --git a/src/neptune_scale/__init__.py b/src/neptune_scale/__init__.py
index 295f3c39..5fd1f9a8 100644
--- a/src/neptune_scale/__init__.py
+++ b/src/neptune_scale/__init__.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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.
+
 __all__ = [
     "Run",
 ]
diff --git a/src/neptune_scale/api/__init__.py b/src/neptune_scale/api/__init__.py
index 87413fd1..a38703d8 100644
--- a/src/neptune_scale/api/__init__.py
+++ b/src/neptune_scale/api/__init__.py
@@ -1 +1,16 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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 package contains user-facing classes and functions.
diff --git a/src/neptune_scale/api/attribute.py b/src/neptune_scale/api/attribute.py
index e3dbbf7d..9c66dd36 100644
--- a/src/neptune_scale/api/attribute.py
+++ b/src/neptune_scale/api/attribute.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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 functools
 import itertools
 import threading
diff --git a/src/neptune_scale/api/run.py b/src/neptune_scale/api/run.py
index 41bfbe40..9c13ffab 100644
--- a/src/neptune_scale/api/run.py
+++ b/src/neptune_scale/api/run.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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.
+
 """
 Python package
 """
diff --git a/src/neptune_scale/api/validation.py b/src/neptune_scale/api/validation.py
index 20a75719..c7398c90 100644
--- a/src/neptune_scale/api/validation.py
+++ b/src/neptune_scale/api/validation.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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 __future__ import annotations
 
 __all__ = (
diff --git a/src/neptune_scale/exceptions.py b/src/neptune_scale/exceptions.py
index 61510384..fa744463 100644
--- a/src/neptune_scale/exceptions.py
+++ b/src/neptune_scale/exceptions.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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 __future__ import annotations
 
 __all__ = (
diff --git a/src/neptune_scale/legacy.py b/src/neptune_scale/legacy.py
index 3ce25ec6..016a5605 100644
--- a/src/neptune_scale/legacy.py
+++ b/src/neptune_scale/legacy.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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 typing import Any
 
 import neptune_scale.api.run
diff --git a/src/neptune_scale/net/__init__.py b/src/neptune_scale/net/__init__.py
index 384c3471..43ea4941 100644
--- a/src/neptune_scale/net/__init__.py
+++ b/src/neptune_scale/net/__init__.py
@@ -1 +1,16 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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 package contains everything related to communication with the Neptune API.
diff --git a/src/neptune_scale/net/projects.py b/src/neptune_scale/net/projects.py
index 4a97de2d..5b68ea07 100644
--- a/src/neptune_scale/net/projects.py
+++ b/src/neptune_scale/net/projects.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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 re
 from enum import Enum
 from json import JSONDecodeError
diff --git a/src/neptune_scale/net/runs.py b/src/neptune_scale/net/runs.py
index bf14fe86..52e93227 100644
--- a/src/neptune_scale/net/runs.py
+++ b/src/neptune_scale/net/runs.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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 typing import Optional
 
 from neptune_retrieval_api.models import SearchLeaderboardEntriesParamsDTO
diff --git a/src/neptune_scale/net/serialization.py b/src/neptune_scale/net/serialization.py
index 741c48a3..ea756123 100644
--- a/src/neptune_scale/net/serialization.py
+++ b/src/neptune_scale/net/serialization.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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 __future__ import annotations
 
 __all__ = (
diff --git a/src/neptune_scale/net/util.py b/src/neptune_scale/net/util.py
index cbc25d2e..beca024d 100644
--- a/src/neptune_scale/net/util.py
+++ b/src/neptune_scale/net/util.py
@@ -1,3 +1,19 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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.
+
+
 def escape_nql_criterion(criterion: str) -> str:
     """
     Escape backslash and (double-)quotes in the string, to match what the NQL engine expects.
diff --git a/src/neptune_scale/projects.py b/src/neptune_scale/projects.py
index 10f1968e..21b357ef 100644
--- a/src/neptune_scale/projects.py
+++ b/src/neptune_scale/projects.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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 re
 from typing import (
     Optional,
diff --git a/src/neptune_scale/sync/__init__.py b/src/neptune_scale/sync/__init__.py
index e69de29b..7f91f4d1 100644
--- a/src/neptune_scale/sync/__init__.py
+++ b/src/neptune_scale/sync/__init__.py
@@ -0,0 +1,14 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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/src/neptune_scale/sync/aggregating_queue.py b/src/neptune_scale/sync/aggregating_queue.py
index 0bf47226..2a744eeb 100644
--- a/src/neptune_scale/sync/aggregating_queue.py
+++ b/src/neptune_scale/sync/aggregating_queue.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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 __future__ import annotations
 
 __all__ = ("AggregatingQueue",)
diff --git a/src/neptune_scale/sync/errors_tracking.py b/src/neptune_scale/sync/errors_tracking.py
index c7f51bb0..786f879d 100644
--- a/src/neptune_scale/sync/errors_tracking.py
+++ b/src/neptune_scale/sync/errors_tracking.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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 __future__ import annotations
 
 __all__ = ("ErrorsQueue", "ErrorsMonitor")
diff --git a/src/neptune_scale/sync/lag_tracking.py b/src/neptune_scale/sync/lag_tracking.py
index 76c2bb08..fa83fefe 100644
--- a/src/neptune_scale/sync/lag_tracking.py
+++ b/src/neptune_scale/sync/lag_tracking.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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 __future__ import annotations
 
 __all__ = ("LagTracker",)
diff --git a/src/neptune_scale/sync/metadata_splitter.py b/src/neptune_scale/sync/metadata_splitter.py
index e92524af..78cc74bc 100644
--- a/src/neptune_scale/sync/metadata_splitter.py
+++ b/src/neptune_scale/sync/metadata_splitter.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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 __future__ import annotations
 
 __all__ = ("MetadataSplitter",)
diff --git a/src/neptune_scale/sync/operations_queue.py b/src/neptune_scale/sync/operations_queue.py
index d518da11..8fbe4847 100644
--- a/src/neptune_scale/sync/operations_queue.py
+++ b/src/neptune_scale/sync/operations_queue.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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 __future__ import annotations
 
 __all__ = ("OperationsQueue",)
diff --git a/src/neptune_scale/sync/parameters.py b/src/neptune_scale/sync/parameters.py
index f3d4b7fe..f0d5d82a 100644
--- a/src/neptune_scale/sync/parameters.py
+++ b/src/neptune_scale/sync/parameters.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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.
+
 # Input validation
 MAX_RUN_ID_LENGTH = 128
 MAX_EXPERIMENT_NAME_LENGTH = 730
diff --git a/src/neptune_scale/sync/queue_element.py b/src/neptune_scale/sync/queue_element.py
index 521f89e4..058ef098 100644
--- a/src/neptune_scale/sync/queue_element.py
+++ b/src/neptune_scale/sync/queue_element.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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.
+
 __all__ = ("BatchedOperations", "SingleOperation")
 
 from typing import (
diff --git a/src/neptune_scale/sync/sync_process.py b/src/neptune_scale/sync/sync_process.py
index 8e655ad5..3237c8fb 100644
--- a/src/neptune_scale/sync/sync_process.py
+++ b/src/neptune_scale/sync/sync_process.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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 __future__ import annotations
 
 __all__ = ("SyncProcess",)
diff --git a/src/neptune_scale/sync/util.py b/src/neptune_scale/sync/util.py
index 2d5ecf96..a6015b8e 100644
--- a/src/neptune_scale/sync/util.py
+++ b/src/neptune_scale/sync/util.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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
 import signal
 from typing import Optional
diff --git a/src/neptune_scale/util/__init__.py b/src/neptune_scale/util/__init__.py
index 75a71b3b..588d2dd3 100644
--- a/src/neptune_scale/util/__init__.py
+++ b/src/neptune_scale/util/__init__.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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.
+
 __all__ = [
     "Daemon",
     "get_logger",
diff --git a/src/neptune_scale/util/abstract.py b/src/neptune_scale/util/abstract.py
index 80538c36..62e3caf4 100644
--- a/src/neptune_scale/util/abstract.py
+++ b/src/neptune_scale/util/abstract.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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 __future__ import annotations
 
 from abc import (
diff --git a/src/neptune_scale/util/daemon.py b/src/neptune_scale/util/daemon.py
index a40ed4ce..14488f3a 100644
--- a/src/neptune_scale/util/daemon.py
+++ b/src/neptune_scale/util/daemon.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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.
+
 __all__ = ["Daemon"]
 
 import abc
diff --git a/src/neptune_scale/util/envs.py b/src/neptune_scale/util/envs.py
index 843fa9c3..8ee87fd3 100644
--- a/src/neptune_scale/util/envs.py
+++ b/src/neptune_scale/util/envs.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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
 
 PROJECT_ENV_NAME = "NEPTUNE_PROJECT"
diff --git a/src/neptune_scale/util/logger.py b/src/neptune_scale/util/logger.py
index 68df26db..661689c6 100644
--- a/src/neptune_scale/util/logger.py
+++ b/src/neptune_scale/util/logger.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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.
+
 __all__ = ("get_logger",)
 
 import logging
diff --git a/src/neptune_scale/util/process_killer.py b/src/neptune_scale/util/process_killer.py
index 8e373bd8..3718e41c 100644
--- a/src/neptune_scale/util/process_killer.py
+++ b/src/neptune_scale/util/process_killer.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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.
+
 __all__ = ["kill_me"]
 
 import os
diff --git a/src/neptune_scale/util/process_link.py b/src/neptune_scale/util/process_link.py
index dff7febc..f7174ca4 100644
--- a/src/neptune_scale/util/process_link.py
+++ b/src/neptune_scale/util/process_link.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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 multiprocessing
 import os
 import queue
diff --git a/src/neptune_scale/util/shared_var.py b/src/neptune_scale/util/shared_var.py
index 84f48c28..bab7ccf6 100644
--- a/src/neptune_scale/util/shared_var.py
+++ b/src/neptune_scale/util/shared_var.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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 multiprocessing
 from collections.abc import Callable
 from types import TracebackType
diff --git a/src/neptune_scale/util/styles.py b/src/neptune_scale/util/styles.py
index d537deab..0a402698 100644
--- a/src/neptune_scale/util/styles.py
+++ b/src/neptune_scale/util/styles.py
@@ -1,3 +1,18 @@
+#
+# Copyright (c) 2025, Neptune Labs Sp. z o.o.
+#
+# 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.
+
 __all__ = ("STYLES", "ensure_style_detected")
 
 import os