Skip to main content

LOBSTER Tool for Python3

Project description

LOBSTER

The Lightweight Open BMW Software Traceability Evidence Report allows you to demonstrate software traceability and requirements coverage, which is essential for meeting standards such as ISO 26262.

This package contains a tool to extract tracing tags from Python3 source code or Bazel files.

Tools

  • lobster-python: Extract requirements from Python3 code or from Bazel

Usage

This tool supports:

  • Python code
  • Python PyUnit/unittest unit tests
  • Bazel files

lobster-python was invented for Python code and throughout this document we only refer to Python. But the tool also works for Bazel files because they are very similar to Python code.

For either code or tests you can embedd tracing tags like this:

   def potato(self):
      # lobster-trace: something.example
      return "potato"

You can add justifications as well:

   def potato(self):
      # lobster-exclude: a very good reason is here
      return "potato"

For classes, you have a choice on how you trace them: you either annotate the class itself, or each individual method. If you choose to annotate the class itself, then you will get warnings for each method with an annotation.

Normal Code

For normal code the usage is:

lobster-python FILES_OR_DIRS

Note that FILES_OR_DIRS should not contain any tests. They will be treated as regular code otherwise.

Tests

For tests (pyunit or unittest) the usage is:

lobster-python --activity FILES_OR_DIRS

Here FILES_OR_DIRS may contain additional code (like the implementation of mock classes), but only functions with names that stick to the following pattern will be taken into account:

  • start with _test or test,
  • or end with test.

That means you don't need to manually exclude your setup or tear down code, only individual tests will be included.

Please note that the generated output json files always use PyTest as framework indicator, even if unittest is used:

{
  "framework": "PyUnit",
  "kind": "Test"
}

Copyright & License information

The copyright holder of LOBSTER is the Bayerische Motoren Werke Aktiengesellschaft (BMW AG), and LOBSTER is published under the GNU Affero General Public License, Version 3.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bmw_lobster_tool_python-1.0.2-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file bmw_lobster_tool_python-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for bmw_lobster_tool_python-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3b85c5b2142ddbae79d16ac2464f005d5f4baba2a94397301ac60e3a3af7e460
MD5 73d6e35bb2a2c1616dc590d6ba650ab5
BLAKE2b-256 e3c1da60ed2aada2ac88211ed3d284539ddeda24fc5f155d9e3cde2f14c6b865

See more details on using hashes here.

Provenance

The following attestation bundles were made for bmw_lobster_tool_python-1.0.2-py3-none-any.whl:

Publisher: package.yml on bmw-software-engineering/lobster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page