Skip to content

Commit 67bd917

Browse files
Phase 3: Project structure (#132)
* Add common directory Signed-off-by: Maria Teresa Ortega <teresa.ortega0903@gmail.com> * New project structure Signed-off-by: Maria Teresa Ortega <teresa.ortega0903@gmail.com> * Fix pytest Signed-off-by: Maria Teresa Ortega <teresa.ortega0903@gmail.com> * Fixed Signed-off-by: Maria Teresa Ortega <teresa.ortega0903@gmail.com> * Move shell folder out of ctx Signed-off-by: Maria Teresa Ortega <teresa.ortega0903@gmail.com> * Delete folder src/lambkin/core/ctx/shell Signed-off-by: Maria Teresa Ortega <teresa.ortega0903@gmail.com> * Fix some docstrings problems Signed-off-by: Maria Teresa Ortega <teresa.ortega0903@gmail.com> * Add license Signed-off-by: Maria Teresa Ortega <teresa.ortega0903@gmail.com> * Fix params file Signed-off-by: Maria Teresa Ortega <teresa.ortega0903@gmail.com> * Format Signed-off-by: Maria Teresa Ortega <teresa.ortega0903@gmail.com> --------- Signed-off-by: Maria Teresa Ortega <teresa.ortega0903@gmail.com>
1 parent 044c232 commit 67bd917

25 files changed

+464
-9
lines changed

examples/__init__.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Copyright 2026 Ekumen, Inc.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
"""LAMBKIN: Localization And Mapping BenchmarKINg SDK."""
16+
17+
from .lambkin_benchmarking import execute_background_process, wait_for_processes
18+
19+
__all__ = [
20+
"execute_background_process",
21+
"wait_for_processes",
22+
]
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
#!/usr/bin/env python3
22

3+
# Copyright 2026 Ekumen, Inc.
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
317
"""Lambkin library to execute and benchmark Localization and Mapping algorithms."""
418

519
import shutil

lambkin_ros2/CMakeLists.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
# Copyright 2026 Ekumen, Inc.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
115
cmake_minimum_required(VERSION 3.16)
216
project(lambkin_ros2)
317
find_package(ament_cmake REQUIRED)

lambkin_ros2/launch/beluga.launch.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
# Copyright 2026 Ekumen, Inc.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
115
"""Launch file for the Beluga AMCL benchmarking environment."""
216

317
import os

pyproject.toml

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
# Copyright 2026 Ekumen, Inc.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
115
[build-system]
216
requires = ["uv_build>=0.10.3,<0.11.0"]
317
build-backend = "uv_build"
@@ -38,4 +52,5 @@ convention = "google"
3852

3953
[tool.pytest.ini_options]
4054
testpaths = ["test"]
41-
pythonpath = ["src"]
55+
pythonpath = [".",
56+
"examples"]

src/lambkin/__init__.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
1-
"""LAMBKIN: Localization And Mapping BenchmarKINg SDK."""
2-
3-
from .lambkin import execute_background_process, wait_for_processes
1+
# Copyright 2026 Ekumen, Inc.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
414

5-
__all__ = [
6-
"execute_background_process",
7-
"wait_for_processes",
8-
]
15+
"""LAMBKIN: Localization And Mapping BenchmarKINg SDK."""

src/lambkin/common/__init__.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Copyright 2026 Ekumen, Inc.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
"""Common utilities and primitives shared across the lambkin SDK.
16+
17+
Exposes named_product and all base exceptions for convenience.
18+
"""

src/lambkin/common/exceptions.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Copyright 2026 Ekumen, Inc.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
"""Base exceptions for the lambkin SDK.
16+
17+
All errors raised by lambkin inherit from LambkinError, allowing callers to
18+
catch SDK-specific failures with a single except clause.
19+
"""
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Copyright 2026 Ekumen, Inc.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
"""Named product factory for lambkin benchmarks.
16+
17+
Provides named_product(), a utility to generate combinatorial parameter sets.
18+
Used to define benchmark configurations in a readable and structured way.
19+
"""

src/lambkin/core/__init__.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Copyright 2026 Ekumen, Inc.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
"""Core internals of the lambkin SDK.
16+
17+
Contains the benchmark execution engine: context lifecycle, process management,
18+
shell utilities, and decorators. Not intended to be imported directly by end
19+
users — use the top-level lambkin package instead.
20+
"""

0 commit comments

Comments
 (0)