Sphinx-Needs Timing Measurement: Sphinx-Needs

Build Duration: 132.18s       Build timestamp: 2024-04-11T15:32:44.518963       Elements: 17

Overview

# Function Category Source Overall [s] Average [s] Min [s] Max [s] Amount Min/Max spread [%] Ratio build time[%]
1 calc_sum dyn_func user 0.0070577 0.0017644 0.0000125 0.0065145 4 52070.2 0.01
2 check_linked_values dyn_func user 0.0005447 0.0000908 0.0000032 0.0005154 6 16000.7 0.00
3 copy dyn_func user 0.0016297 0.0000815 0.0000007 0.0015996 20 227861.1 0.00
4 echo dyn_func user 0.0000021 0.0000010 0.0000008 0.0000013 2 152.2 0.00
5 links_from_content dyn_func user 0.0002212 0.0001106 0.0000110 0.0002101 2 1904.9 0.00
6 test dyn_func user 0.0000078 0.0000078 0.0000078 0.0000078 1 100.0 0.00
7 filter_needs filtering internal 0.1823491 0.0015453 0.0000016 0.0227574 118 1385115.5 0.14
8 filter_single_need filtering internal 0.1101645 0.0000063 0.0000039 0.0002227 17435 5720.5 0.08
9 build_need need internal 1.3689760 0.0061666 0.0023578 0.2119234 222 8988.0 1.04
10 create_need need internal 0.2453672 0.0613418 0.0077060 0.2190039 4 2842.0 0.19
11 post_process_needs_data need_post_process internal 0.1025820 0.0023314 0.0000030 0.1023895 44 3461443.2 0.08
12 run need internal 0.1803842 0.0008237 0.0000557 0.0517969 219 92960.9 0.14
13 process_needflow needflow internal 0.0291136 0.0048523 0.0016641 0.0176396 6 1060.0 0.02
14 run needflow internal 0.0009077 0.0000567 0.0000424 0.0001084 16 255.5 0.00
15 process_needpie needpie internal 0.4846117 0.4846117 0.4846117 0.4846117 1 100.0 0.37
16 process_needtables needtable internal 1.2048281 0.1506035 0.0147562 0.4351769 8 2949.1 0.91
17 process_needuml needuml internal 0.1087851 0.0362617 0.0015362 0.0690667 3 4495.8 0.08

Details

build_need
(need, internal)

Amount 222.00000
Overall [s] 1.36898
Average [s] 0.00617
Min [s] 0.00236
Max [s] 0.21192
Min-Max spread [%] 8988.01905
Ratio build time [%] 1.04
Max run analysis

Max: 0.2119233779994829

args

['clean', '<container ids="FEATURE_3"><container classes="need_container" ids="SNCB-086fcbc', '<sphinx.application.Sphinx object at 0x7fd051394b90>', 'blue_border', 'directives/needextract']

kwargs

{}
Show Meta Data

File: /home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/envs/latest/lib/python3.11/site-packages/sphinx_needs/layout.py

Line: 141

Function docs


Builds a need based on a given layout for a given need-node.

The created table must have the following docutils structure::

- table
-- tgroup
--- colspec (partial used)
--- thead (not used)
--- tbody
---- row
----- entry
------ custom layout nodes

The level structure must be kept, otherwise docutils can not handle it!

calc_sum
(dyn_func, user)

Amount 4.00000
Overall [s] 0.00706
Average [s] 0.00176
Min [s] 0.00001
Max [s] 0.00651
Min-Max spread [%] 52070.23368
Ratio build time [%] 0.01
Max run analysis

Max: 0.006514505999803077

args

['<sphinx.application.Sphinx object at 0x7fd051394b90>', "{'docname': 'dynamic_functions', 'lineno': 47, 'doctype': '.calc_sum', 'target_i", "{'xyz_123': {'docname': 'configuration', 'lineno': 187, 'doctype': '.rst', 'targ", 'hours', 'hours.isdigit() and float(hours) > 10']

kwargs

{}
Show Meta Data

File: /home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/envs/latest/lib/python3.11/site-packages/sphinx_needs/functions/common.py

Line: 357

Function docs


Sums the values of a given option in filtered needs up to single number.

Useful e.g. for calculating the amount of needed hours for implementation of all linked
specification needs.


**Input data**

.. spec:: Do this
:id: sum_input_1
:hours: 7
:collapse: False

.. spec:: Do that
:id: sum_input_2
:hours: 15
:collapse: False

.. spec:: Do too much
:id: sum_input_3
:hours: 110
:collapse: False

**Example 2**

.. code-block:: jinja

.. req:: Result 1
:amount: [[calc_sum("hours")]]

.. req:: Result 1
:amount: [[calc_sum("hours")]]
:collapse: False


**Example 2**

.. code-block:: jinja

.. req:: Result 2
:amount: [[calc_sum("hours", "hours.isdigit() and float(hours) > 10")]]

.. req:: Result 2
:amount: [[calc_sum("hours", "hours.isdigit() and float(hours) > 10")]]
:collapse: False

**Example 3**

.. code-block:: jinja

.. req:: Result 3
:links: sum_input_1; sum_input_3
:amount: [[calc_sum("hours", links_only="True")]]

.. req:: Result 3
:links: sum_input_1; sum_input_3
:amount: [[calc_sum("hours", links_only="True")]]
:collapse: False

**Example 4**

.. code-block:: jinja

.. req:: Result 4
:links: sum_input_1; sum_input_3
:amount: [[calc_sum("hours", "hours.isdigit() and float(hours) > 10", "True")]]

.. req:: Result 4
:links: sum_input_1; sum_input_3
:amount: [[calc_sum("hours", "hours.isdigit() and float(hours) > 10", "True")]]
:collapse: False

:param option: Options, from which the numbers shall be taken
:param filter: Filter string, which all needs must passed to get their value added.
:param links_only: If "True", only linked needs are taken into account.

:return: A float number

check_linked_values
(dyn_func, user)

Amount 6.00000
Overall [s] 0.00054
Average [s] 0.00009
Min [s] 0.00000
Max [s] 0.00052
Min-Max spread [%] 16000.74036
Ratio build time [%] 0.00
Max run analysis

Max: 0.0005153839992999565

args

['<sphinx.application.Sphinx object at 0x7fd051394b90>', "{'docname': 'dynamic_functions', 'lineno': 89, 'doctype': '.check_linked_values'", "{'xyz_123': {'docname': 'configuration', 'lineno': 187, 'doctype': '.rst', 'targ", 'progress', 'status', 'in progress', 'type == "req" ']

kwargs

{}
Show Meta Data

File: /home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/envs/latest/lib/python3.11/site-packages/sphinx_needs/functions/common.py

Line: 190

Function docs


Returns a specific value, if for all linked needs a given option has a given value.

The linked needs can be filtered by using the ``filter`` option.

If ``one_hit`` is set to True, only one linked need must have a positive match for the searched value.

**Examples**

**Needs used as input data**

.. code-block:: jinja

.. req:: Input A
:id: clv_A
:status: in progress

.. req:: Input B
:id: clv_B
:status: in progress

.. spec:: Input C
:id: clv_C
:status: closed

.. req:: Input A
:id: clv_A
:status: in progress
:collapse: False

.. req:: Input B
:id: clv_B
:status: in progress
:collapse: False

.. spec:: Input C
:id: clv_C
:status: closed
:collapse: False


**Example 1: Positive check**

Status gets set to *progress*.

.. code-block:: jinja

.. spec:: result 1: Positive check
:links: clv_A, clv_B
:status: [[check_linked_values('progress', 'status', 'in progress' )]]

.. spec:: result 1: Positive check
:id: clv_1
:links: clv_A, clv_B
:status: [[check_linked_values('progress', 'status', 'in progress' )]]
:collapse: False


**Example 2: Negative check**

Status gets not set to *progress*, because status of linked need *clv_C* does not match *"in progress"*.

.. code-block:: jinja

.. spec:: result 2: Negative check
:links: clv_A, clv_B, clv_C
:status: [[check_linked_values('progress', 'status', 'in progress' )]]

.. spec:: result 2: Negative check
:id: clv_2
:links: clv_A, clv_B, clv_C
:status: [[check_linked_values('progress', 'status', 'in progress' )]]
:collapse: False


**Example 3: Positive check thanks of used filter**

status gets set to *progress*, because linked need *clv_C* is not part of the filter.

.. code-block:: jinja

.. spec:: result 3: Positive check thanks of used filter
:links: clv_A, clv_B, clv_C
:status: [[check_linked_values('progress', 'status', 'in progress', 'type == "req" ' )]]

.. spec:: result 3: Positive check thanks of used filter
:id: clv_3
:links: clv_A, clv_B, clv_C
:status: [[check_linked_values('progress', 'status', 'in progress', 'type == "req" ' )]]
:collapse: False

**Example 4: Positive check thanks of one_hit option**

Even *clv_C* has not the searched status, status gets anyway set to *progress*.
That's because ``one_hit`` is used so that only one linked need must have the searched
value.

.. code-block:: jinja

.. spec:: result 4: Positive check thanks of one_hit option
:links: clv_A, clv_B, clv_C
:status: [[check_linked_values('progress', 'status', 'in progress', one_hit=True )]]

.. spec:: result 4: Positive check thanks of one_hit option
:id: clv_4
:links: clv_A, clv_B, clv_C
:status: [[check_linked_values('progress', 'status', 'in progress', one_hit=True )]]
:collapse: False

**Result 5: Two checks and a joint status**
Two checks are performed and both are positive. So their results get joined.

.. code-block:: jinja

.. spec:: result 5: Two checks and a joint status
:links: clv_A, clv_B, clv_C
:status: [[check_linked_values('progress', 'status', 'in progress', one_hit=True )]] [[check_linked_values('closed', 'status', 'closed', one_hit=True )]]

.. spec:: result 5: Two checks and a joint status
:id: clv_5
:links: clv_A, clv_B, clv_C
:status: [[check_linked_values('progress', 'status', 'in progress', one_hit=True )]] [[check_linked_values('closed', 'status', 'closed', one_hit=True )]]
:collapse: False

:param result: value, which gets returned if all linked needs have parsed the checks
:param search_option: option name, which is used n linked needs for the search
:param search_value: value, which an option of a linked need must match
:param filter_string: Checks are only performed on linked needs, which pass the defined filter
:param one_hit: If True, only one linked need must have a positive check
:return: result, if all checks are positive

copy
(dyn_func, user)

Amount 20.00000
Overall [s] 0.00163
Average [s] 0.00008
Min [s] 0.00000
Max [s] 0.00160
Min-Max spread [%] 227861.12818
Ratio build time [%] 0.00
Max run analysis

Max: 0.0015995909998309799

args

['<sphinx.application.Sphinx object at 0x7fd051394b90>', "{'docname': 'dynamic_functions', 'lineno': 67, 'doctype': '.copy', 'target_id': ", "{'xyz_123': {'docname': 'configuration', 'lineno': 187, 'doctype': '.rst', 'targ", 'title']

kwargs

{'filter': 'current_need["sections"][-1]==sections[-1]'}
Show Meta Data

File: /home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/envs/latest/lib/python3.11/site-packages/sphinx_needs/functions/common.py

Line: 73

Function docs


Copies the value of one need option to another

.. code-block:: jinja

.. req:: copy-example
:id: copy_1
:tags: tag_1, tag_2, tag_3
:status: open

.. spec:: copy-example implementation
:id: copy_2
:status: [[copy("status", "copy_1")]]
:links: copy_1
:comment: [[copy("id")]]

Copies status of ``copy_1`` to own status.
Sets also a comment, which copies the id of own need.

.. test:: test of specification and requirement
:id: copy_3
:links: copy_2; [[copy('links', 'copy_2')]]
:tags: [[copy('tags', 'copy_1')]]

Set own link to ``copy_2`` and also copies all links from it.

Also copies all tags from copy_1.

.. req:: copy-example
:id: copy_1
:tags: tag_1, tag_2, tag_3
:status: open

.. spec:: copy-example implementation
:id: copy_2
:status: [[copy("status", "copy_1")]]
:links: copy_1
:comment: [[copy("id")]]

Copies status of ``copy_1`` to own status.
Sets also a comment, which copies the id of own need.

.. test:: test of specification and requirement
:id: copy_3
:links: copy_2; [[copy('links', 'copy_2')]]
:tags: [[copy('tags', 'copy_1')]]

Set own link to ``copy_2`` and also copies all links from it.

Also copies all tags from copy_1.

If the filter_string needs to compare a value from the current need and the value is unknown yet,
you can reference the valued field by using ``current_need["my_field"]`` inside the filter string.
Small example::

.. test:: test of current_need value
:id: copy_4

The es the title of the first need found under the same highest
section (headline):

[[copy('title', filter='current_need["sections"][-1]==sections[-1]')]]

.. test:: test of current_need value
:id: copy_4

The following copy command copies the title of the first need found under the same highest
section (headline):

[[copy('title', filter='current_need["sections"][-1]==sections[-1]')]]

This filter possibilities get really powerful in combination with :ref:`needs_global_options`.


:param option: Name of the option to copy
:param need_id: id of the need, which contains the source option. If None, current need is taken
:param upper: Is set to True, copied value will be uppercase
:param lower: Is set to True, copied value will be lowercase
:param filter: :ref:`filter_string`, which first result is used as copy source.
:return: string of copied need option

create_need
(need, internal)

Amount 4.00000
Overall [s] 0.24537
Average [s] 0.06134
Min [s] 0.00771
Max [s] 0.21900
Min-Max spread [%] 2842.00447
Ratio build time [%] 0.19
Max run analysis

Max: 0.2190038699991419

args

['FEATURE_3', '<sphinx.application.Sphinx object at 0x7fd051394b90>']

kwargs

{'layout': 'None', 'style': 'blue_border', 'docname': 'directives/needextract'}
Show Meta Data

File: /home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/envs/latest/lib/python3.11/site-packages/sphinx_needs/layout.py

Line: 34

Function docs


Creates a new need-node for a given layout.

Need must already exist in internal dictionary.
This creates a new representation only.
:param need_id: need id
:param app: sphinx application
:param layout: layout to use, overrides layout set by need itself
:param style: style to use, overrides styles set by need itself
:param docname: Needed for calculating references
:return:

echo
(dyn_func, user)

Amount 2.00000
Overall [s] 0.00000
Average [s] 0.00000
Min [s] 0.00000
Max [s] 0.00000
Min-Max spread [%] 152.16921
Ratio build time [%] 0.00
Max run analysis

Max: 1.263000740436837e-06

args

['<sphinx.application.Sphinx object at 0x7fd051394b90>', "{'id': 'need_func_dummy'}", "{'xyz_123': {'docname': 'configuration', 'lineno': 187, 'doctype': '.rst', 'targ", 'first']

kwargs

{}
Show Meta Data

File: /home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/envs/latest/lib/python3.11/site-packages/sphinx_needs/functions/common.py

Line: 49

Function docs


.. versionadded:: 0.6.3

Just returns the given string back.
Mostly useful for tests.

.. code-block:: jinja

A nice :need_func:`[[echo("first")]] test` for need_func.

**Result**: A nice :need_func:`[[echo("first")]] test` for need_func.

filter_needs
(filtering, internal)

Amount 118.00000
Overall [s] 0.18235
Average [s] 0.00155
Min [s] 0.00000
Max [s] 0.02276
Min-Max spread [%] 1385115.47238
Ratio build time [%] 0.14
Max run analysis

Max: 0.022757426999305608

args

["dict_values([{'docname': 'configuration', 'lineno': 187, 'doctype': '.rst', 'tar", "NeedsSphinxConfig(types=[{'directive': 'int', 'title': 'Interface', 'content': '", 'id == "extend_test_001"']

kwargs

{'location': "('directives/needextend', 68)"}
Show Meta Data

File: /home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/envs/latest/lib/python3.11/site-packages/sphinx_needs/filter_common.py

Line: 288

Function docs


Filters given needs based on a given filter string.
Returns all needs, which pass the given filter.

:param needs: list of needs, which shall be filtered
:param config: NeedsSphinxConfig object
:param filter_string: strings, which gets evaluated against each need
:param current_need: current need, which uses the filter.
:param location: source location for error reporting (docname, line number)
:param append_warning: additional text to append to any failed filter warning

:return: list of found needs

filter_single_need
(filtering, internal)

Amount 17435.00000
Overall [s] 0.11016
Average [s] 0.00001
Min [s] 0.00000
Max [s] 0.00022
Min-Max spread [%] 5720.54808
Ratio build time [%] 0.08
Max run analysis

Max: 0.00022270100089372136

args

["{'docname': 'configuration', 'lineno': 187, 'doctype': '.rst', 'target_id': 'xyz", "NeedsSphinxConfig(types=[{'directive': 'int', 'title': 'Interface', 'content': '", 'search("([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$)", title)', "[{'docname': 'configuration', 'lineno': 187, 'doctype': '.rst', 'target_id': 'xy", 'None']

kwargs

{'filter_compiled': '<code object <module> at 0x7fd03dde6170, file "<string>", line 1>'}
Show Meta Data

File: /home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/envs/latest/lib/python3.11/site-packages/sphinx_needs/filter_common.py

Line: 349

Function docs


Checks if a single need/need_part passes a filter_string

:param need: the data for a single need
:param config: NeedsSphinxConfig object
:param filter_compiled: An already compiled filter_string to safe time
:param need: need or need_part
:param filter_string: string, which is used as input for eval()
:param needs: list of all needs
:return: True, if need passes the filter_string, else False
Amount 2.00000
Overall [s] 0.00022
Average [s] 0.00011
Min [s] 0.00001
Max [s] 0.00021
Min-Max spread [%] 1904.85801
Ratio build time [%] 0.00
Max run analysis

Max: 0.0002101440004480537

args

['<sphinx.application.Sphinx object at 0x7fd051394b90>', "{'docname': 'dynamic_functions', 'lineno': 19, 'doctype': '.links_from_content',", "{'xyz_123': {'docname': 'configuration', 'lineno': 187, 'doctype': '.rst', 'targ"]

kwargs

{}
Show Meta Data

File: /home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/envs/latest/lib/python3.11/site-packages/sphinx_needs/functions/common.py

Line: 469

Function docs


Extracts links from content of a need.

All need-links set by using ``:need:`NEED_ID``` get extracted.

Same links are only added once.

Example:

.. req:: Requirement 1
:id: CON_REQ_1

.. req:: Requirement 2
:id: CON_REQ_2

.. spec:: Test spec
:id: CON_SPEC_1
:links: [[links_from_content()]]

This specification cares about the realisation of:

* :need:`CON_REQ_1`
* :need:`My need `

.. spec:: Test spec 2
:id: CON_SPEC_2
:links: [[links_from_content('CON_SPEC_1')]]

Links retrieved from content of :need:`CON_SPEC_1`

Used code of **CON_SPEC_1**::

.. spec:: Test spec
:id: CON_SPEC_1
:links: [[links_from_content()]]

This specification cares about the realisation of:

* :need:`CON_REQ_1`
* :need:`CON_REQ_2`

.. spec:: Test spec 2
:id: CON_SPEC_2
:links: [[links_from_content('CON_SPEC_1')]]

Links retrieved from content of :need:`CON_SPEC_1`

:param need_id: ID of need, which provides the content. If not set, current need is used.
:param filter: :ref:`filter_string`, which a found need-link must pass.
:return: List of linked need-ids in content

post_process_needs_data
(need_post_process, internal)

Amount 44.00000
Overall [s] 0.10258
Average [s] 0.00233
Min [s] 0.00000
Max [s] 0.10239
Min-Max spread [%] 3461443.16944
Ratio build time [%] 0.08
Max run analysis

Max: 0.1023895079997601

args

['<sphinx.application.Sphinx object at 0x7fd051394b90>']

kwargs

{}
Show Meta Data

File: /home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/envs/latest/lib/python3.11/site-packages/sphinx_needs/directives/need.py

Line: 383

Function docs

In-place post-processing of needs data.

This should be called after all needs (and extend) data has been collected.

This function is idempotent;
it will only be run on the first call, and will not be run again.

After this function has been run, one should assume that the needs data is finalised,
and so in principle should be treated as read-only.

process_needflow
(needflow, internal)

Amount 6.00000
Overall [s] 0.02911
Average [s] 0.00485
Min [s] 0.00166
Max [s] 0.01764
Min-Max spread [%] 1060.03280
Ratio build time [%] 0.02
Max run analysis

Max: 0.01763960300013423

args

['<sphinx.application.Sphinx object at 0x7fd051394b90>', '<document source="/home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/', 'directives/needflow', '[<Needflow: >, <Needflow: >, <Needflow: >, <Needflow: >, <Needflow: >, <Needflow']

kwargs

{}
Show Meta Data

File: /home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/envs/latest/lib/python3.11/site-packages/sphinx_needs/directives/needflow.py

Line: 288

Function docs

None

process_needpie
(needpie, internal)

Amount 1.00000
Overall [s] 0.48461
Average [s] 0.48461
Min [s] 0.48461
Max [s] 0.48461
Min-Max spread [%] 100.00000
Ratio build time [%] 0.37
Max run analysis

Max: 0.48461169000074733

args

['<sphinx.application.Sphinx object at 0x7fd051394b90>', '<document source="/home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/', 'directives/needpie', '[<Needpie: >, <Needpie: >, <Needpie: >, <Needpie: >, <Needpie: >, <Needpie: >, <']

kwargs

{}
Show Meta Data

File: /home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/envs/latest/lib/python3.11/site-packages/sphinx_needs/directives/needpie.py

Line: 111

Function docs

None

process_needtables
(needtable, internal)

Amount 8.00000
Overall [s] 1.20483
Average [s] 0.15060
Min [s] 0.01476
Max [s] 0.43518
Min-Max spread [%] 2949.12011
Ratio build time [%] 0.91
Max run analysis

Max: 0.4351769109998713

args

['<sphinx.application.Sphinx object at 0x7fd051394b90>', '<document source="/home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/', 'filter', '[<Needtable: >, <Needtable: >, <Needtable: >]']

kwargs

{}
Show Meta Data

File: /home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/envs/latest/lib/python3.11/site-packages/sphinx_needs/directives/needtable.py

Line: 120

Function docs


Replace all needtables nodes with a table of filtered nodes.

process_needuml
(needuml, internal)

Amount 3.00000
Overall [s] 0.10879
Average [s] 0.03626
Min [s] 0.00154
Max [s] 0.06907
Min-Max spread [%] 4495.80608
Ratio build time [%] 0.08
Max run analysis

Max: 0.06906673099729232

args

['<sphinx.application.Sphinx object at 0x7fd051394b90>', '<document source="/home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/', 'directives/needarch', '[<Needuml: >, <Needuml: >, <Needuml: >, <Needuml: >, <Needuml: >, <Needuml: >]']

kwargs

{}
Show Meta Data

File: /home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/envs/latest/lib/python3.11/site-packages/sphinx_needs/directives/needuml.py

Line: 487

Function docs

None

run
(need, internal)

Amount 219.00000
Overall [s] 0.18038
Average [s] 0.00082
Min [s] 0.00006
Max [s] 0.05180
Min-Max spread [%] 92960.85775
Ratio build time [%] 0.14
Max run analysis

Max: 0.05179685999974026

args

['<sphinx_needs.directives.need.NeedDirective object at 0x7fd04d742b10>']

kwargs

{}
Show Meta Data

File: /home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/envs/latest/lib/python3.11/site-packages/sphinx_needs/directives/need.py

Line: 82

Function docs

None

run
(needflow, internal)

Amount 16.00000
Overall [s] 0.00091
Average [s] 0.00006
Min [s] 0.00004
Max [s] 0.00011
Min-Max spread [%] 255.53145
Ratio build time [%] 0.00
Max run analysis

Max: 0.00010837599984370172

args

['<sphinx_needs.directives.needflow.NeedflowDirective object at 0x7fd04db1b290>']

kwargs

{}
Show Meta Data

File: /home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/envs/latest/lib/python3.11/site-packages/sphinx_needs/directives/needflow.py

Line: 65

Function docs

None

test
(dyn_func, user)

Amount 1.00000
Overall [s] 0.00001
Average [s] 0.00001
Min [s] 0.00001
Max [s] 0.00001
Min-Max spread [%] 100.00000
Ratio build time [%] 0.00
Max run analysis

Max: 7.808001100784168e-06

args

['<sphinx.application.Sphinx object at 0x7fd051394b90>', "{'docname': 'dynamic_functions', 'lineno': 15, 'doctype': '.test', 'target_id': ", "{'xyz_123': {'docname': 'configuration', 'lineno': 187, 'doctype': '.rst', 'targ", 'arg_1', '[1, 2, 3]']

kwargs

{'my_keyword': 'awesome'}
Show Meta Data

File: /home/docs/checkouts/readthedocs.org/user_builds/sphinx-needs/envs/latest/lib/python3.11/site-packages/sphinx_needs/functions/common.py

Line: 22

Function docs


Test function for dynamic functions in sphinx needs.

Collects every given args and kwargs and returns a single string, which contains their values/keys.

.. code-block:: jinja

.. req:: test requirement

[[test('arg_1', [1,2,3], my_keyword='awesome')]]

.. req:: test requirement

[[test('arg_1', [1,2,3], my_keyword='awesome')]]

:return: single test string