type: CreationInfo
spec version: 3.0.1
created by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd2
created using: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/additionalToolSPDXRef-gnrtd3
created: 2026-07-04T02:24:06Z

type: CreationInfo
spec version: 3.0.1
created by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd0
created using: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/additionalToolSPDXRef-gnrtd1
created: 2026-07-04T02:24:06Z

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd96669
type: Relationship
relationship type: hasDeclaredLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd129
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd96666
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd96667
type: Relationship
relationship type: hasConcludedLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd129
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd96666
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd129
type: simplelicensing_LicenseExpression
simplelicensing license expression: MIT
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd96668
type: Organization
name: http://openeuler.org
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd96666
type: software_Package
supplied by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd96668
software download location: NOASSERTION
summary: Development documents and examples for executing
software package version: 0:1.2.0-1.oe2403sp4
software home page: https://github.com/alexmojaki/executing
description: [![Build Status](https://github.com/alexmojaki/executing/workflows/Tests/badge.svg?branch=master)](https://github.com/alexmojaki/executing/actions) [![Coverage Status](https://coveralls.io/repos/github/alexmojaki/executing/badge.svg?branch=master)](https://coveralls.io/github/alexmojaki/executing?branch=master) [![Supports Python versions 2.7 and 3.5+, including PyPy](https://img.shields.io/pypi/pyversions/executing.svg)](https://pypi.python.org/pypi/executing) This mini-package lets you get information about what a frame is currently doing, particularly the AST node being executed. * [Usage](#usage) * [Getting the AST node](#getting-the-ast-node) * [Getting the source code of the node](#getting-the-source-code-of-the-node) * [Getting the `__qualname__` of the current function](#getting-the-__qualname__-of-the-current-function) * [The Source class](#the-source-class) * [Installation](#installation) * [How does it work?](#how-does-it-work) * [Is it reliable?](#is-it-reliable) * [Which nodes can it identify?](#which-nodes-can-it-identify) * [Libraries that use this](#libraries-that-use-this) ```python import executing node = executing.Source.executing(frame).node ``` Then `node` will be an AST node (from the `ast` standard library module) or None if the node couldn't be identified (which may happen often and should always be checked). `node` will always be the same instance for multiple calls with frames at the same point of execution. If you have a traceback object, pass it directly to `Source.executing()` rather than the `tb_frame` attribute to get the correct node. For this you will need to separately install the [`asttokens`](https://github.com/gristlabs/asttokens) library, then obtain an `ASTTokens` object: ```python executing.Source.executing(frame).source.asttokens() ``` or: ```python executing.Source.for_frame(frame).asttokens() ``` or use one of the convenience methods: ```python executing.Source.executing(frame).text() executing.Source.executing(frame).text_…
name: python-executing-help
software source info: acquired package info from repodata DB: repodata/69e709f4d2852d98f12867a74015d19384fe2727ff670fd70178cdde80b1e77e-primary.sqlite.bz2
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/additionalToolSPDXRef-gnrtd1
type: Tool
name: syft-[not provided]
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/additionalToolSPDXRef-gnrtd3
type: Tool
name: syft-[not provided]
creation info: _:creationInfo_1