Sphinx-Needs Timing Measurement: Sphinx-Needs

Build Duration: 143.30s       Build timestamp: 2024-05-21T11:09:25.331309       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.0057722 0.0014431 0.0000105 0.0052627 4 50101.8 0.00
2 check_linked_values dyn_func user 0.0004136 0.0000689 0.0000030 0.0003897 6 13135.9 0.00
3 copy dyn_func user 0.0011317 0.0000566 0.0000006 0.0011054 20 170328.7 0.00
4 echo dyn_func user 0.0000022 0.0000011 0.0000007 0.0000016 2 231.1 0.00
5 links_from_content dyn_func user 0.0001956 0.0000978 0.0000103 0.0001854 2 1805.2 0.00
6 test dyn_func user 0.0000071 0.0000071 0.0000071 0.0000071 1 100.0 0.00
7 filter_needs filtering internal 0.1166673 0.0009887 0.0000016 0.0151661 118 976566.4 0.08
8 filter_single_need filtering internal 0.0695736 0.0000040 0.0000022 0.0002013 17435 9206.4 0.05
9 build_need need internal 1.0662461 0.0048029 0.0022451 0.1766900 222 7870.0 0.74
10 create_need need internal 0.0343461 0.0085865 0.0073486 0.0101282 4 137.8 0.02
11 post_process_needs_data need_post_process internal 0.0841136 0.0019117 0.0000027 0.0839457 44 3132303.9 0.06
12 run need internal 0.2274831 0.0010387 0.0000533 0.1088245 219 204284.7 0.16
13 process_needflow needflow internal 0.0243565 0.0040594 0.0016807 0.0144535 6 860.0 0.02
14 run needflow internal 0.0008369 0.0000523 0.0000395 0.0000841 16 212.9 0.00
15 process_needpie needpie internal 0.4223638 0.4223638 0.4223638 0.4223638 1 100.0 0.29
16 process_needtables needtable internal 1.1412592 0.1426574 0.0137629 0.4085694 8 2968.6 0.80
17 process_needuml needuml internal 0.1038974 0.0346325 0.0015710 0.0656694 3 4180.0 0.07

Details

build_need
(need, internal)

Amount 222.00000
Overall [s] 1.06625
Average [s] 0.00480
Min [s] 0.00225
Max [s] 0.17669
Min-Max spread [%] 7869.97890
Ratio build time [%] 0.74
Max run analysis

Max: 0.17668999799991525

args

['clean', '<Need classes="need need-feature" ids="EXT-FEATURE-B" refid="EXT-FEATURE-B"><par', '<sphinx.application.Sphinx object at 0x7f29b9dd7550>']

kwargs

{'fromdocname': 'directives/list2need'}
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: 145

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.00577
Average [s] 0.00144
Min [s] 0.00001
Max [s] 0.00526
Min-Max spread [%] 50101.77081
Ratio build time [%] 0.00
Max run analysis

Max: 0.005262689999995018

args

['<sphinx.application.Sphinx object at 0x7f29b9dd7550>', "{'docname': 'dynamic_functions', 'lineno': 47, 'lineno_content': 51, 'doctype': ", "{'xyz_123': {'docname': 'configuration', 'lineno': 187, 'lineno_content': 193, '", '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.00041
Average [s] 0.00007
Min [s] 0.00000
Max [s] 0.00039
Min-Max spread [%] 13135.86114
Ratio build time [%] 0.00
Max run analysis

Max: 0.000389740999935384

args

['<sphinx.application.Sphinx object at 0x7f29b9dd7550>', "{'docname': 'dynamic_functions', 'lineno': 89, 'lineno_content': 95, 'doctype': ", "{'xyz_123': {'docname': 'configuration', 'lineno': 187, 'lineno_content': 193, '", '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.00113
Average [s] 0.00006
Min [s] 0.00000
Max [s] 0.00111
Min-Max spread [%] 170328.67056
Ratio build time [%] 0.00
Max run analysis

Max: 0.0011054330000206392

args

['<sphinx.application.Sphinx object at 0x7f29b9dd7550>', "{'docname': 'dynamic_functions', 'lineno': 67, 'lineno_content': 70, 'doctype': ", "{'xyz_123': {'docname': 'configuration', 'lineno': 187, 'lineno_content': 193, '", '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.03435
Average [s] 0.00859
Min [s] 0.00735
Max [s] 0.01013
Min-Max spread [%] 137.82454
Ratio build time [%] 0.02
Max run analysis

Max: 0.010128235999900426

args

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

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: 38

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 [%] 231.06513
Ratio build time [%] 0.00
Max run analysis

Max: 1.562000079502468e-06

args

['<sphinx.application.Sphinx object at 0x7f29b9dd7550>', "{'id': 'need_func_dummy'}", "{'xyz_123': {'docname': 'configuration', 'lineno': 187, 'lineno_content': 193, '", '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.11667
Average [s] 0.00099
Min [s] 0.00000
Max [s] 0.01517
Min-Max spread [%] 976566.41367
Ratio build time [%] 0.08
Max run analysis

Max: 0.015166077000003497

args

["dict_values([{'docname': 'configuration', 'lineno': 187, 'lineno_content': 193, ", "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.06957
Average [s] 0.00000
Min [s] 0.00000
Max [s] 0.00020
Min-Max spread [%] 9206.40408
Ratio build time [%] 0.05
Max run analysis

Max: 0.0002012520001244411

args

["{'docname': 'configuration', 'lineno': 187, 'lineno_content': 193, 'doctype': '.", "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, 'lineno_content': 193, 'doctype': '", 'None']

kwargs

{'filter_compiled': '<code object <module> at 0x7f29a5c8a250, 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.00020
Average [s] 0.00010
Min [s] 0.00001
Max [s] 0.00019
Min-Max spread [%] 1805.15143
Ratio build time [%] 0.00
Max run analysis

Max: 0.0001853709999295461

args

['<sphinx.application.Sphinx object at 0x7f29b9dd7550>', "{'docname': 'dynamic_functions', 'lineno': 19, 'lineno_content': 23, 'doctype': ", "{'xyz_123': {'docname': 'configuration', 'lineno': 187, 'lineno_content': 193, '"]

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.08411
Average [s] 0.00191
Min [s] 0.00000
Max [s] 0.08395
Min-Max spread [%] 3132303.93678
Ratio build time [%] 0.06
Max run analysis

Max: 0.0839457480000192

args

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

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.02436
Average [s] 0.00406
Min [s] 0.00168
Max [s] 0.01445
Min-Max spread [%] 859.96857
Ratio build time [%] 0.02
Max run analysis

Max: 0.014453465999963555

args

['<sphinx.application.Sphinx object at 0x7f29b9dd7550>', '<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.42236
Average [s] 0.42236
Min [s] 0.42236
Max [s] 0.42236
Min-Max spread [%] 100.00000
Ratio build time [%] 0.29
Max run analysis

Max: 0.42236378600000535

args

['<sphinx.application.Sphinx object at 0x7f29b9dd7550>', '<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.14126
Average [s] 0.14266
Min [s] 0.01376
Max [s] 0.40857
Min-Max spread [%] 2968.62844
Ratio build time [%] 0.80
Max run analysis

Max: 0.408569363999959

args

['<sphinx.application.Sphinx object at 0x7f29b9dd7550>', '<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.10390
Average [s] 0.03463
Min [s] 0.00157
Max [s] 0.06567
Min-Max spread [%] 4180.00060
Ratio build time [%] 0.07
Max run analysis

Max: 0.06566935600005763

args

['<sphinx.application.Sphinx object at 0x7f29b9dd7550>', '<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.22748
Average [s] 0.00104
Min [s] 0.00005
Max [s] 0.10882
Min-Max spread [%] 204284.73439
Ratio build time [%] 0.16
Max run analysis

Max: 0.10882452099997408

args

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

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.00084
Average [s] 0.00005
Min [s] 0.00004
Max [s] 0.00008
Min-Max spread [%] 212.91033
Ratio build time [%] 0.00
Max run analysis

Max: 8.405699998093041e-05

args

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

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.136000022001099e-06

args

['<sphinx.application.Sphinx object at 0x7f29b9dd7550>', "{'docname': 'dynamic_functions', 'lineno': 15, 'lineno_content': 17, 'doctype': ", "{'xyz_123': {'docname': 'configuration', 'lineno': 187, 'lineno_content': 193, '", '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