{ "info": { "author": "Stein Heselmans", "author_email": "teh@melexis.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Environment :: Web Environment", "Framework :: Sphinx :: Extension", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Documentation", "Topic :: Documentation :: Sphinx", "Topic :: Utilities" ], "description": ".. image:: https://img.shields.io/badge/License-GPL%20v3-blue.png\n :target: https://www.gnu.org/licenses/gpl-3.0\n :alt: GPL3 License\n\n.. image:: https://badge.fury.io/py/mlx.traceability.png\n :target: https://badge.fury.io/py/mlx.traceability\n :alt: Pypi packaged release\n\n.. image:: https://travis-ci.org/melexis/sphinx-traceability-extension.png?branch=master\n :target: https://travis-ci.org/melexis/sphinx-traceability-extension\n :alt: Build status\n\n.. image:: https://img.shields.io/badge/Documentation-published-brightgreen.png\n :target: https://melexis.github.io/sphinx-traceability-extension/\n :alt: Documentation\n\n.. image:: https://codecov.io/gh/melexis/sphinx-traceability-extension/coverage.png\n :target: https://codecov.io/gh/melexis/sphinx-traceability-extension\n :alt: Code Coverage\n\n.. image:: https://codeclimate.com/github/melexis/sphinx-traceability-extension/badges/gpa.png\n :target: https://codeclimate.com/github/melexis/sphinx-traceability-extension\n :alt: Code Climate Status\n\n.. image:: https://requires.io/github/melexis/sphinx-traceability-extension/requirements.png?branch=master\n :target: https://requires.io/github/melexis/sphinx-traceability-extension/requirements/?branch=master\n :alt: Requirements Status\n\n.. image:: https://img.shields.io/badge/contributions-welcome-brightgreen.png?style=flat\n :target: https://github.com/melexis/sphinx-traceability-extension/issues\n :alt: Contributions welcome\n\n==========================\nSphinx Traceability plugin\n==========================\n\nSphinx plugin that allows defining documentation items and relations between those items. Can be used\nas a requirements management tool for e.g. ISO26262 projects.\n\n.. contents:: `Contents`\n :depth: 2\n :local:\n\n.. _traceability_goal:\n\n----\nGoal\n----\n\nDefine documentation items which can be linked to each other. E.g. define requirements which can be derived from\nother requirements, or linked to design items and test case descriptions.\n\nEvery item is an object in the documentation, which can have different relations to other objects in the documentation.\nDocumentation objects can be spread in different documents.\n\nTwo kinds of relationships exist:\n\n- Internal relationships: Relationships between objects of the documentation (items). Once a (forward) relationship\n from item A to item B is defined, the reverse relationship from item B to item A is\n automatically generated by the plugin.\n\n- External relationships: Relationship from an object of the documentation (item), to an external reference (url of\n e.g. an external tool). As no item B exists, the reverse relationship is also not defined.\n\nRelationships are configurable.\n\nThe plugin can generate\n\n- rendered versions of the defined documentation objects\n- flat lists of documentation objects\n- traceability matrices between objects\n\n.. _traceability_installing:\n\n----------\nInstalling\n----------\n\n.. code-block:: bash\n\n pip3 install mlx.traceability\n\n.. _traceability_config:\n\n-------------\nConfiguration\n-------------\n\nThe *conf.py* file contains the documentation configuration for your project. This file needs to be equipped in order\nto configure the traceability plugin.\n\nFirst the plugin needs to be enabled in the *extensions* variable:\n\n.. code-block:: bash\n\n extensions = [\n 'mlx.traceability',\n ...\n ]\n\nSecond the path to the static javascript assets needs to be added to the sphinx ``html_static_path``\nvariable.\n\n.. code-block:: bash\n\n import os\n import mlx.traceability\n\n html_static_path = [os.path.join(os.path.dirname(mlx.traceability.__file__), 'assets')]\n\n.. _traceability_config_attributes:\n\nValid attributes\n================\n\nPython variable *traceability_attributes* can be defined in order to override the\ndefault configuration of the traceability plugin.\nIt is a *set* of attribute pairs: the *key* is the name of the attribute (can only be lowercase),\nwhile the *value* holds the regular expression to which the attribute-value should comply.\n\nExample of attributes and their regular expression:\n\n.. code-block:: python\n\n traceability_attributes = {\n 'value': '^.*$',\n 'asil': '^(QM|[ABCD])$',\n }\n\n.. _traceability_config_attribute2string:\n\nStringification of attributes\n================================\n\nPython variable *traceability_attribute_to_string* can be defined in order to override the\ndefault configuration of the traceability plugin.\nIt is a *set* of attribute stringifications: the *key* is the name of the attribute, while\nthe *value* holds the string representation (as to be rendered in html) of the attribute name.\n\nExample of attribute stringification:\n\n.. code-block:: python\n\n traceability_relationship_to_string = {\n 'value': 'Value',\n 'asil': 'ASIL',\n }\n\n.. _traceability_config_relations:\n\nValid relationships\n===================\n\nPython variable *traceability_relationsips* can be defined in order to override the\ndefault configuration of the traceability plugin.\nIt is a *set* of relationship pairs: the *key* is the name of the forward relationship, while the *value* holds the\nname of the corresponding reverse relationship. Both can only be lowercase.\n\nRelationships with prefix *ext_* are treated in a different way: they are handled as external relationships and don't\nneed a reverse relationship.\n\nExample of internal and external relationship pairs:\n\n.. code-block:: python\n\n traceability_relationships = {\n 'validates': 'validated_by',\n 'ext_polarion_reference': ''\n }\n\n.. _traceability_config_relation2string:\n\nStringification of relationships\n================================\n\nPython variable *traceability_relationship_to_string* can be defined in order to override the\ndefault configuration of the traceability plugin.\nIt is a *set* of relationship stringifications: the *key* is the name of the (forward or reverse) relationship, while\nthe *value* holds the string representation (as to be rendered in html) of the relationship.\n\nExample of internal and external relationship stringification:\n\n.. code-block:: python\n\n traceability_relationship_to_string = {\n 'validates': 'Validates',\n 'validated_by': 'Validated by',\n 'ext_polarion_reference': 'Polarion reference'\n }\n\n.. _traceability_config_ext2url:\n\nExternal relationship to URL translation\n========================================\n\nExternal relationships need to be translated to URL's while rendering. For each defined external relationship,\nan entry in the Python *set* named *traceability_external_relationship_to_url* is needed. The URL generation\nis templated using the *fieldx* keyword, where x is a number incrementing from 1 onwards for each value in the URL\nthat needs to be replaced.\n\nExample configuration of URL translation of external relationship using 2 fields:\n\n.. code-block:: python\n\n traceability_external_relationship_to_url = {\n 'ext_polarion_reference': 'https://melexis.polarion.com/polarion/#/project/field1/workitem?id=field2',\n }\n\n.. _traceability_config_render_relations:\n\nRendering of relationships per documentation object\n===================================================\n\nWhen rendering the documentation objects, the user has the option to include/exclude the rendering of the\nrelationships to other documentation objects. This can be done through the Python variable\n*traceability_render_relationship_per_item* which is *boolean*: a value of ``True`` will enable rendering\nof relationships per documentation object, while a value of ``False`` will disable this rendering.\n\nExample configuration of enable rendering relationships per item:\n\n.. code-block:: python\n\n traceability_render_relationship_per_item = True\n\nRendering of attributes per documentation object\n================================================\n\nThe rendering of attributes of documentation objects can be controlled through the *boolean* variable\n*traceability_render_attributes_per_item*: rendering of attributes is enabled by setting it to ``True`` (the default)\nwhile a value of ``False`` will prevent the attribute list from being rendered.\n\nExample configuration of disabling per item attribute rendering:\n\n.. code-block:: python\n\n traceability_render_attributes_per_item = False\n\nAbility to collapse the list of relationships and attributes per documentation object\n=====================================================================================\n\nA button is added to each documentation object that has rendered relationships and/or attributes to be able to show and\nhide these traceability links. The *boolean* configuration variable *traceability_collapse_links* allows selecting\nbetween hiding and showing the list of links for all items on page load: setting its value to ``True`` results in the\nlist of links being hidden (collapsed) on page load, while a value of ``False`` results in the list being shown\n(uncollapsed)(the default).\n\nExample configuration of hiding the traceability links on page load:\n\n.. code-block:: python\n\n traceability_collapse_links = True\n\n.. _traceability_config_no_captions:\n\nNo captions\n===========\n\nBy default, the output will contain hyperlinks to all related items. By default, the caption for the target\nitem is displayed for each of the related items. The captions can be omitted at configuration level (see\nthis section) and at directive level (see e.g. `traceability_usage_item_matrix`_).\n\nNo captions for item\n--------------------\n\nExample configuration of disabling the rendering of captions on item:\n\n.. code-block:: python\n\n traceability_item_no_captions = True\n\nNo captions for item-list\n-------------------------\n\nExample configuration of disabling the rendering of captions on item-list:\n\n.. code-block:: python\n\n traceability_list_no_captions = True\n\nNo captions for item-matrix\n---------------------------\n\nExample configuration of disabling the rendering of captions on item-matrix:\n\n.. code-block:: python\n\n traceability_matrix_no_captions = True\n\nNo captions for item-attributes-matrix\n--------------------------------------\n\nExample configuration of disabling the rendering of captions on item-attributes-matrix:\n\n.. code-block:: python\n\n traceability_attributes_matrix_no_captions = True\n\nNo captions for item-tree\n-------------------------\n\nExample configuration of disabling the rendering of captions on item-tree:\n\n.. code-block:: python\n\n traceability_tree_no_captions = True\n\n.. _traceability_config_export:\n\nExport\n======\n\nThe plugin allows exporting the documentation items.\n\nExport to JSON\n--------------\n\nAs a preliminary test feature, the plugin allows to export the documentation items to a JSON database. The feature\ncan be enabled by setting the configuration to your JSON-file to export to. Note, the JSON-file is overwritten\n(not appended) on every build of the documentation.\n\n.. code-block:: python\n\n traceability_json_export_path = '/path/to/your/database.json'\n\nAs a preliminary feature, the database only contains per documentation item:\n\n- the id,\n- the caption,\n- the document name and line number,\n- the relations to other items.\n\nThe actual content (RST content with images, formulas, etc) of the item is currently not stored.\n\n.. note:: Requires sphinx >= 1.6.0\n\n.. _traceability_config_callback:\n\nCallback per item (advanced)\n============================\n\nThe plugin allows parsing and modifying documentation objects 'behind the scenes' using a callback. The callback\nhas this prototype:\n\n.. code-block:: python\n\n def traceability_my_callback_per_item(name, all_items):\n '''\n Custom callback on items\n\n :param name: Name (id) of the item currently being parsed\n :param all_items: Set of all items that are parsed so far\n '''\n return\n\nThe callback is executed while parsing the documentation item from your rst-file. Note that not all items are\navailable at the time this callback executes, the *all_items* parameter is a growing set of documentation objects.\n\nExample of no callback per item:\n\n.. code-block:: python\n\n traceability_callback_per_item = None\n\n.. _traceability_config_link_colors:\n\nCustom colors for linked items\n==============================\n\nThe plugin allows customization of the colors of traceable items in order to easily recognize the type of item which is\nlinked to. A dictionary in the configuration file defines the regexp, which is used to match item IDs, as key and a\ntuple of 1-3 color defining strings as value. The first color is used for the default hyperlink state, the second color\nis used for the hover and active states, and the third color is used to override the default color of the visted state.\nLeaving a color empty results in the use of the default html style. The top regexp has the highest priority. To support\nPython versions lower than 3.7, we use an :code:`OrderedDict` to have a deterministic order for prioritizing regexes.\n\n.. code-block:: python\n\n traceability_hyperlink_colors = OrderedDict([\n (r'^(RQT|r[\\d]+', ('#7F00FF', '#b369ff')),\n (r'^[IU]TEST_REP', ('rgba(255, 0, 0, 1)', 'rgba(255, 0, 0, 0.7)', 'rgb(200, 0, 0)')),\n (r'^[IU]TEST', ('goldenrod', 'hsl(43, 62%, 58%)', 'darkgoldenrod')),\n (r'^SYS_', ('', 'springgreen', '')),\n (r'^SRS_', ('', 'orange', '')),\n ])\n\n.. _traceability_default_config:\n\nDefault config\n==============\n\nThe plugin itself holds a default config that can be used for any traceability documenting project:\n\n.. code-block:: python\n\n traceability_callback_per_item = None\n traceability_attributes = {\n 'value': '^.*$',\n 'asil': '^(QM|[ABCD])$',\n 'aspice': '^[123]$',\n 'status': '^.*$',\n 'result': '(?i)^(pass|fail|error)$'\n }\n traceability_attribute_to_string = {\n 'value': 'Value',\n 'asil': 'ASIL',\n 'aspice': 'ASPICE',\n 'status': 'Status'\n }\n traceability_relationships = {\n 'fulfills': 'fulfilled_by',\n 'depends_on': 'impacts_on',\n 'implements': 'implemented_by',\n 'realizes': 'realized_by',\n 'validates': 'validated_by',\n 'trace': 'backtrace',\n 'ext_toolname': ''\n }\n traceability_relationship_to_string = {\n 'fulfills': 'Fulfills',\n 'fulfilled_by': 'Fulfilled by',\n 'depends_on': 'Depends on',\n 'impacts_on': 'Impacts on',\n 'implements': 'Implements',\n 'implemented_by': 'Implemented by',\n 'realizes': 'Realizes',\n 'realized_by': 'Realized by',\n 'validates': 'Validates',\n 'validated_by': 'Validated by',\n 'trace': 'Traces',\n 'backtrace': 'Back traces',\n 'ext_toolname': 'Reference to toolname'\n }\n traceability_external_relationship_to_url = {\n 'ext_toolname': 'http://toolname.company.com/field1/workitem?field2'\n }\n traceability_render_relationship_per_item = False\n\nThis default configuration, which is built into the plugin, can be overridden through the conf.py of your project.\n\nFor Melexis.SWCC silicon projects, the SWCC process holds a default configuration in the *config/traceability_config.py*\nfile. For each of the above configuration variables, the default configuration file holds a variable with *swcc_*\nprefix. Taking the default configuration is as easy as assiging the above configuration value with the *swcc_* variable.\nOverriding a configuration is as easy as assigning your own values to a configuration value.\n\nExample of accepting default configuration for relationships, while disabling (override) rendering of relationships\nper documentation object:\n\n.. code-block:: python\n\n sys.path.insert(0, os.path.abspath('/config'))\n\n from traceability_config import swcc_traceability_attributes\n from traceability_config import swcc_traceability_relationships\n from traceability_config import swcc_traceability_relationship_to_string\n\n traceability_attributes = swcc_traceability_attributes\n traceability_relationships = swcc_traceability_relationships\n traceability_relationship_to_string = swcc_traceability_relationship_to_string\n traceability_render_relationship_per_item = False\n\n.. _traceability_usage:\n\n-----\nUsage\n-----\n\n.. _required_sphinx_options:\n\nRequired sphinx options\n=======================\n\nBy default, sphinx (*sphinx-build*) performs an incremental build: it only parses the changed files and generates\nnew output for changed files. As this plugin generates automatic reverse relations, the incremental build option\nof sphinx needs to be disabled. This can be done using the *-E* option:\n\n.. code-block:: bash\n\n sphinx-build -E \n\n:Rationale: The plugin allows linking documentation items through relations. If a forward relation from *item-A*\n (in *document-a.rst*) to *item-B* (in *document-b.rst*) is created, the reverse relations from\n *item-B* to *item-A* is automatically created. With incremental builds, documents only get re-generated\n when they are changed. This means the automatic reverse relation cannot be created if that *document-B*\n was not touched.\n By disabling incremental builds, it is made sure every document is updated (with automatic reverse\n relations) on every re-build.\n\nThe plugin assumes incremental builds are disabled, as this makes the implementation of the plugin much easier.\n\n.. _traceability_usage_item:\n\nDefining documentation items\n============================\n\nDocumentation items can be defined using the *item* directive, specifying:\n\n- the name (id) of the documentation item\n- caption or short description of the documentation item\n- attributes for the documentation item\n- internal/external relationships to other documentation items (details in next paragraph)\n- content of documentation item including any rst content including text, images, formulas, code-blocks, etc.\n\n.. code-block:: rest\n\n .. item:: SWRQT-MY_FIRST_REQUIREMENT Caption of my first requirement\n :value: 400\n :status: Approved\n :validated_by: ITEST-MY_FIRST_INTEGRATION_TEST\n :ext_polarion_reference: project_x:workitem_y\n :nocaptions:\n\n According to the Polarion reference, the software **shall** implement my first requirement.\n\nAttributes can be added to the item, using the `configured attribute keys `_\n(e.g. *value* in the above example). The content of the attribute is treated as a single string and should\nmatch the regular expression in configuration.\n\nThe relations to other documentation items can be specified as:\n\n- a space-separated list of item ID's, or\n- items can be linked to on a newline (tabulated)\n\n.. code-block:: rest\n\n .. item:: SWRQT-MY_FIRST_REQUIREMENT Caption of my first requirement\n :validated_by:\n ITEST-MY_FIRST_INTEGRATION_TEST\n ITEST-MY_SECOND_INTEGRATION_TEST\n\nThe output will contain hyperlinks to all related items. By default, the caption for the target item is displayed for\neach of these related items. With the option *nocaptions* these captions can be omitted.\n\n.. _adding_relations:\n\nAdding relations outside of the item definitions\n================================================\n\nIn some cases, it's useful to add relations outside of the definition of the items\ninvolved. In that case, you can use the ``item-link`` directive as follows:\n\n.. code-block:: rest\n\n .. item-link::\n :sources: RQT1 RQT2\n :targets: TST3 TST4 TST5\n :type: validates\n\nThis directive has no representation in the documentation build output. It will\njust add an additional relationship to the items mentioned in ``sources`` and\n``targets``.\n\nAdding description to attributes\n================================\n\nSection `traceability_config_attributes`_ explain how attributes can be added to the configuration. It is possible\nto add content to the attributes. A detailed description can be added to an attribute definition:\n\n- The name (id) of the attribute needs to match the configured attribute. This name is not case sensitive.\n- Caption or short description of the attribute.\n- Content of attribute including any rst content including text, images, formulas, code-blocks, etc.\n\n.. code-block:: rest\n\n .. item-attribute:: status The status of a requirement\n\n The status of the requirement explains whether it is *draft*, *under-review*, *approved* or *invalid*.\n\n.. _traceability_usage_item_linking:\n\nManual link to documentation items\n==================================\n\nManual links in RST documentation to any of the documentation items is possible using the *:item:* role:\n\n.. code-block:: rest\n\n For validating the :item:`SWRQT-MY_FIRST_REQUIREMENT`, we plan to use setup x in the y configuration.\n\n.. _traceability_usage_item_list:\n\nFlat list of documentation items\n================================\n\nA flat list of documentation items can be generated using a Python regular expression filter:\n\n.. code-block:: rest\n\n .. item-list:: All software requirements\n :filter: SWRQT\n :status: Appr\n :nocaptions:\n\nwhere *SWRQT* (*filter* argument) can be replaced by any Python regular expression. Documentation items matching\ntheir ID to the given regular expression end up in the list.\n\nwhere *status* can be replaced by any configured attribute, and *Appr* can be replaced by any Python regular\nexpression. Documentation items where the *status* attribute matches the given regular expression end up in the list.\n\nBy default, the caption for every item in the list is shown. By providing the *nocaptions* flag, the\ncaption can be omitted. This gives a smaller list, but also less details.\n\n.. _traceability_usage_item_attributes_matrix:\n\nMatrix with attributes of documentation items\n=============================================\n\nA matrix listing the attributes of documentation items can be generated using:\n\n.. code-block:: rest\n\n .. item-attributes-matrix:: Attributes for requirements\n :filter: SWRQT\n :status: Appr\n :attributes: status\n :sort: status\n :reverse:\n :transpose:\n :nocaptions:\n\nwhere the *filter* argument can be replaced by any Python regular expression. Documentation items matching\ntheir ID to the given regular expression end up in the list.\n\nwhere *status* can be replaced by any configured attribute, and *Appr* can be replaced by any Python regular\nexpression. Documentation items where the *status* attribute matches the given regular expression end up in the list.\n\nwhere *attributes* argument is a space-separated list of attributes that should be matched in the matrix.\n\nAbove arguments can be avoided, or left empty, in which case the table will contain all attributes for all\ndocumentation items.\n\nDocumentation items matching their ID to the given *filter* regular expression end up as rows in the generated table.\nThe matching attribute values end up as columns in the generated table. Documentation items\nthat don't have a value for a certain attribute will have an empty cell at the corresponding location.\n\nBy default, the caption for every item in the table is shown. By providing the *nocaptions* flag, the\ncaption can be omitted. This gives a smaller table, but also less details.\n\nBy default, items are sorted naturally based on their name. With the *sort* argument it is possible to sort on one\nor more attribute values alphabetically. When providing multiple attributes to sort on, the attribute keys are\nspace-separated. With the *reverse* argument, the sorting is reversed.\n\nBy default, the attribute names are listed the header row and every item takes up a row. Depending on the number of\nitems and attributes it could be better to transpose the generated matrix (swap columns for row) by providing the\n*transpose* flag.\n\nOptionally, the *class* attribute can be specified to customize table output, especially useful when rendering to\nLaTeX. Normally the *longtable* class is used when the number of rows is greater than 30 which allows long tables to\nspan multiple pages. By setting *class* to *longtable* manually, you can force the use of this environment.\n\n.. _traceability_usage_item_matrix:\n\nTraceability matrix of documentation items\n==========================================\n\nA traceability matrix of documentation items can be generated using:\n\n.. code-block:: rest\n\n .. item-matrix:: Requirements to test case description traceability\n :source: SWRQT\n :target: [IU]TEST\n :status: Appr\n :sourcetitle: Software requirements\n :targettitle: Integration and unit test cases\n :type: validated_by\n :nocaptions:\n :stats:\n\nwhere the *source* and *target* arguments can be replaced by any Python regular expression.\n\nwhere *status* can be replaced by any configured attribute, and *Appr* can be replaced by any Python regular\nexpression. Only documentation items where the *status* attribute matches the given regular expression end up in\nthe *source* part of the matrix. The attribute value is **not** used as a filter on the *target* part.\n\nThe *type* argument\nis a space-separated list of relationships that should be matched in the matrix. The *sourcetitle* and *targettitle*\narguments are the titles of the columns in the generated matrix.\n\nDocumentation items matching their ID to the given *source* regular expression end up in the left column of the\ngenerated table. Documentation items matching their ID to the given *target* regular expression with a matching\nrelationship (see *type* argument) will end up in the right column of the generated table.\n\nBy default, the caption for every item in the table is shown. By providing the *nocaptions* flag, the\ncaption can be omitted. This gives a smaller table, but also less details.\n\nBy providing the *stats* flag, some statistics (coverage percentage) are calculated and displayed above the\nmatrix. The plugin counts the number of items having a target item in the target-column (=covered or allocated),\nand the number of items having no target in the target-column (=not covered or allocated). And calculates a\ncoverage/allocation percentage from these counts. If the *stats* flag is not given, this percentage is not\ndisplayed.\n\nOptionally, the *class* attribute can be specified to customize table output, especially useful when rendering to\nLaTeX. Normally the *longtable* class is used when the number of rows is greater than 30 which allows long tables to\nspan multiple pages. By setting *class* to *longtable* manually, you can force the use of this environment.\n\n.. _traceability_usage_2d_matrix:\n\n2D-matrix of documentation items\n================================\n\nA 2D-matrix of documentation items can be generated using:\n\n.. code-block:: rest\n\n .. item-2d-matrix:: Requirements to test case description traceability\n :source: SWRQT\n :target: [IU]TEST\n :status: Appr\n :hit: x\n :miss:\n :type: validated_by\n\nwhere the *source* and *target* arguments can be replaced by any Python regular expression.\n\nwhere *status* can be replaced by any configured attribute, and *Appr* can be replaced by any Python regular\nexpression. Only documentation items where the *status* attribute matches the given regular expression end up in\nthe *source* part of the matrix. The attribute value is **not** used as a filter on the *target* part.\n\nThe *type* argument is a space-separated list of relationships that should be matched in the matrix.\n\nDocumentation items matching their ID to the given *source* regular expression end up as columns of the\ngenerated table. Documentation items matching their ID to the given *target* regular expression end up as\nrows of the generated table. Where source and target items have a matching relationship (see *type* argument)\nan 'x' will be placed in the cell at co-ordinates of source/target.\n\nCaptions for items in the 2D table are never shown, as it would give a too heavy loaded table.\n\nOptionally, the *class* attribute can be specified to customize table output, especially useful when rendering to\nLaTeX. Normally the *longtable* class is used when the number of rows is greater than 30 which allows long tables to\nspan multiple pages. By setting *class* to *longtable* manually, you can force the use of this environment.\n\n.. _traceability_usage_item_tree:\n\nDocumentation items tree-view\n=============================\n\nNote: this feature is not supported when building for latex/pdf.\n\nA tree-view of documentation items can be generated using:\n\n.. code-block:: rest\n\n .. item-tree:: Requirements tree view\n :top: SWRQT\n :top_relation_filter: depends_on\n :status: Appr\n :type: impacts_on validated_by\n :nocaptions:\n\nwhere the *top* argument can be replaced by any Python regular expression. The *top_relation_filter* and *type*\narguments are space-separated lists of relationships.\n\nThe directive generates an expandable tree of links to documentation items. A nested bullet list is generated\nwith, at the top level, the top level documentation items. These are the ones matching their ID to the *top*\nregular expression and not having any relation of *top_relation_filter* kind to a documentation item matching the same\n*top* regular expression against its ID.\n\nThe *status* can be replaced by any configured attribute, and *Appr* can be replaced by any Python regular\nexpression. Only documentation items where the *status* attribute matches the given regular expression end up in\nthe tree.\n\nGoing deeper down this nested bullet list, the item's relationships are checked: if there is a *type*\nrelationship (*type* is a space-separated list of relationships), it gets added as a one-level-deeper item in\nthe nested bullet list. This action is repeated recursively.\n\n.. warning::\n\n The *type* is a list of relationships, which cannot hold the forward and reverse relationship of a pair.\n This would give endless repetition of the same nesting and endless recursion in Python. The plugin\n checks the *item-tree* directives for this mistake!\n\nBy default, the caption for every item in the tree is shown. By providing the *nocaptions* flag, the\ncaption can be omitted. This gives a smaller tree, but also less details.\n\n.. _traceability_usage_piechart:\n\nPie chart of documentation items\n================================\n\nA pie chart of documentation items can be generated using:\n\n.. code-block:: rest\n\n .. item-piechart:: Test coverage of requirements with report results\n :id_set: RQT TEST TEST_REP\n :label_set: uncovered, covered, executed\n :result: error, fail, pass\n\nwhere the *id_set* arguments can be replaced by any Python regular expression. The *label_set* and *result* arguments\nare comma-separated lists.\n\nThe *id_set* is a list of item IDs with at least two and at most three item IDs. The first item ID is the source, the\nsecond item ID is the target, and the optional third item ID is the target of the second. Adding a third item ID splits\nup the items with an existing relationship between the first and second ID.\n\nThe optional *label_set* holds the string labels for the pie chart. For source items without a relationship to a target\nitem, the first label is used. For those with a relationship, but without a relationship between the second and third\nID, the second label is used. The third label is used for items with both relationships covered. This attribute is\noptional. The labels in the example are the default values.\n\nThe optional *result* can be replaced by any configured attribute of the third item ID. Its arguments are possible\nvalues of this attribute, ordered in priority from high to low. Using this option splits up the slice with the third\nlabel. In this example an RQT item with multiple TEST items, one with a *fail* and others a *pass* as *result* value in\nthe TEST_REP item, will be added to the *fail* slice of the pie chart.\n\n\nRetrieving checklist values from GitLab/GitHub (advanced)\n=========================================================\n\nThe plugin can add an additional attribute to a traceability item if its item ID exists in a checklist inside the\ndescription of a merge/pull request. Documentation items can be linked to a checklist by defining them with the\n*checklist-item* directive.\n\n.. code-block:: rest\n\n .. checklist-item:: PLAN-UNIT_TESTS Have you added unit tests for regression detection?\n\nThis directive gets treated the same as the *item* directive, except that an additional attribute gets added when the\nitem's ID exists in the checklist. The attribute's value depends on the status of the checkbox. The plugin queries the\nAPI of GitLab/GitHub for the description of the configured merge request.\n\nThe configuration of this feature is stored in the configuration variable *traceability_checklist*. Only the\n*attribute_*-keys are mandatory to use the *checklist-item* directive.\n\n.. code-block:: python\n\n traceability_checklist = {\n 'private_token': 'your_private_token', # optional, depending on accessibility\n 'api_host_name': 'https://api.github.com' or 'https://gitlab.example.com/api/v4',\n 'project_id': 'the_owner/your_repo' or 'your_project_id',\n 'merge_request_id': 'your_merge_request_id(s)'), # comma-separated if more than one\n 'checklist_item_regex': 'your_item_id_regex', # optional, the default is r\"\\S+\"\n 'attribute_name': 'your_attribute_name',\n 'attribute_to_str': 'your_attribute_to_string'),\n 'attribute_values': 'your_attribute_values', # two values, comma-separated\n }\n\nIf the *checklist_item_regex* is configured, a warning is reported for each item ID that matches it and is not defined\nwith the *checklist-item* directive.\n\nIn our *conf.py* the variables are looked for in the environment first, e.g. in a ``.env`` file.\n\n.. code-block:: bash\n\n # copy example .env to your .env\n cp doc/.env.example .env\n\n # add env variables by adjusting the template values in .env\n\n- *ATTRIBUTE_NAME* is the identifier of the attribute to be added, e.g. *checked*.\n- *ATTRIBUTE_TO_STRING* is the string representation (as to be rendered in html) of the attribute name, e.g. *Answer*.\n- *ATTRIBUTE_VALUES* are two comma-separated attribute values, e.g. *yes,no*. The first value is used when the checkbox is checked and the second value when unchecked.\n\nA query is sent to the GitLab/GitHub API to retrieve the status of every checkbox in the description of the merge/pull\nrequest. The traceability item's ID is expected to follow the checkbox directly.\nExample of a valid checklist in Markdown:\n\n.. code-block:: rest\n\n - [x] PLAN-UNIT_TESTS Have you added unit tests for regression detection?\n - [ ] PLAN-PACKAGE_TEST Have you tested the package?\n\nThe checkboxes can be checked/unchecked from RST as well by using the *checkbox-result* directive. The item ID should be\nof a checklist item and is expected to be present in a configured merge/pull request description. The caption should be\none of two configured values in *attribute_values*.\n\n.. code-block:: rest\n\n .. checkbox-result:: QUE-UNIT_TESTS yes\n\nGitLab\n------\n\n- *PRIVATE_TOKEN* is your personal access token that has API access.\n- *API_HOST_NAME* is the host name of the API, e.g. *https://gitlab.example.com/api/v4*\n- *PROJECT_ID* is the ID of the project.\n- *MERGE_REQUEST_ID* is the internal ID of the merge request.\n\nGitHub\n------\n\n- *PRIVATE_TOKEN* is not needed for public repositories. Otherwise, it must be a `personal access token`_ with the access to the targeted scope.\n- *API_HOST_NAME* is the host name of the GitHub REST API v3: *https://api.github.com*\n- *PROJECT_ID* defines the repository by specifying *owner* and *repo* separated by a forward slash, e.g. *melexis/sphinx-traceability-extension*.\n- *MERGE_REQUEST_ID* is the pull request number.\n\n.. _`personal access token`: https://github.blog/2013-05-16-personal-api-tokens/\n\n.. _traceability_process:\n\n-------\nProcess\n-------\n\nThe Melexis.SWCC process has a Guideline for documenting in reStructuredText (RST). It holds guidelines for using\nthe traceability plugin with naming conventions, templates, etc.\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/melexis/sphinx-traceability-extension", "keywords": "traceability,requirements engineering,requirements management,software engineering,systems engineering,sphinx,requirements,ASPICE,ISO26262,ASIL", "license": "GNU General Public License v3 (GPLv3)", "maintainer": "", "maintainer_email": "", "name": "mlx.traceability", "package_url": "https://pypi.org/project/mlx.traceability/", "platform": "any", "project_url": "https://pypi.org/project/mlx.traceability/", "project_urls": { "Homepage": "https://github.com/melexis/sphinx-traceability-extension" }, "release_url": "https://pypi.org/project/mlx.traceability/4.1.1/", "requires_dist": [ "Sphinx (>=2.1)", "docutils", "natsort", "matplotlib", "python-decouple", "requests" ], "requires_python": "", "summary": "Sphinx traceability extension (Melexis fork)", "version": "4.1.1" }, "last_serial": 5815548, "releases": { "1.3.0": [ { "comment_text": "", "digests": { "md5": "3c8126de1aa2747b8bfbe5c9cbd057f1", "sha256": "2223405a9665cedf78582e98f39fbd06f6f184b914b2854a001951dea66d2290" }, "downloads": -1, "filename": "mlx.traceability-1.3.0.tar.gz", "has_sig": false, "md5_digest": "3c8126de1aa2747b8bfbe5c9cbd057f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14191, "upload_time": "2017-05-24T07:48:15", "url": "https://files.pythonhosted.org/packages/80/4f/0f6d873cb10b5d38ded03b1da22307d5b1b8c456b05233ba46c7bba6155e/mlx.traceability-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "0857e86f938d342c8a75391776875931", "sha256": "b3be73c9f590761854cc1d7aa13fda348749484bd7d0679f52cb21b0690e01f1" }, "downloads": -1, "filename": "mlx.traceability-1.4.0.tar.gz", "has_sig": false, "md5_digest": "0857e86f938d342c8a75391776875931", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43734, "upload_time": "2017-07-17T13:27:28", "url": "https://files.pythonhosted.org/packages/82/84/f09a1a5e3d67f609e004d0e8ae86740f5dbdeef491b9f10b974d0bd27ab8/mlx.traceability-1.4.0.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "c6b28deaea53b325a1bd7ba47bf943d2", "sha256": "8cccfd8173e72b1293c9cea18d27bf1ba3d6fc8db7d1779558b55eb8c297e538" }, "downloads": -1, "filename": "mlx.traceability-1.4.1.tar.gz", "has_sig": false, "md5_digest": "c6b28deaea53b325a1bd7ba47bf943d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43718, "upload_time": "2017-07-31T07:05:13", "url": "https://files.pythonhosted.org/packages/5f/93/221e716fe74779938322132276b8cb856c109fb03ee7e0d4d2c9f2c13448/mlx.traceability-1.4.1.tar.gz" } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "6215a7ef3b680792c3561abcb768546d", "sha256": "0ac2feff1c882a76b426c6f7c11f51abd105507c19f7c8e79abdd6bcf8f64cdc" }, "downloads": -1, "filename": "mlx.traceability-1.4.2.tar.gz", "has_sig": false, "md5_digest": "6215a7ef3b680792c3561abcb768546d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43719, "upload_time": "2017-08-10T07:30:21", "url": "https://files.pythonhosted.org/packages/f4/89/a88e2ab95780a8cc8108285a991441b159c8cda4ddc93c7eb597bc92db75/mlx.traceability-1.4.2.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "2b542cfa74d018580055a404e73bcbf7", "sha256": "ef09ff55c030c7fb332d0d0d28646c8146091fff699d0e1c4a2c11a946e332a7" }, "downloads": -1, "filename": "mlx.traceability-2.0.0.tar.gz", "has_sig": false, "md5_digest": "2b542cfa74d018580055a404e73bcbf7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43911, "upload_time": "2017-11-15T14:35:52", "url": "https://files.pythonhosted.org/packages/cf/12/bb1a9cc49e23823619a9cc0327b094355332c2f7ad011c474088e3d3614f/mlx.traceability-2.0.0.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "2a271240055fc9a6a116b3761101b635", "sha256": "a2b2810829eabe4da27dade5083dea1eb3af4a87a29910d0fc24690ea99abf2e" }, "downloads": -1, "filename": "mlx.traceability-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2a271240055fc9a6a116b3761101b635", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23483, "upload_time": "2017-12-05T14:49:43", "url": "https://files.pythonhosted.org/packages/86/12/f6cbb92e8d6e865bf20ba6180a4ef446a07fd3dc34241144646b776b518b/mlx.traceability-2.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "00382d590e5b70149f0b2fa83c0b7761", "sha256": "b1773d3ba852f8e7ae11aa8ad9deddd2a7d52bb44844026aae5cffc18222468a" }, "downloads": -1, "filename": "mlx.traceability-2.1.0.tar.gz", "has_sig": false, "md5_digest": "00382d590e5b70149f0b2fa83c0b7761", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45916, "upload_time": "2017-12-05T14:49:44", "url": "https://files.pythonhosted.org/packages/a8/77/b58475a78564a119c35d572b45a556dfde24e0d4441afb99724a761e5764/mlx.traceability-2.1.0.tar.gz" } ], "2.10.0": [ { "comment_text": "", "digests": { "md5": "46a5cebcc39fa1b189d2de7603c5bf47", "sha256": "44ae03f80857a19ae9145edb58c6c289898ddb08aa05caa5bebd907ed4330861" }, "downloads": -1, "filename": "mlx.traceability-2.10.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "46a5cebcc39fa1b189d2de7603c5bf47", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 37665, "upload_time": "2019-01-16T08:26:24", "url": "https://files.pythonhosted.org/packages/cb/94/0daa6a9b882c7f5c7250fd7d44060488726bc3fb2aece08358e31147a3f6/mlx.traceability-2.10.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e84a80061fe8eb098da4bab08271a020", "sha256": "cc60c5677e8e35fa0ee771e3e84eb36b1cca9d1d364663540b5ce943fd0f9cf5" }, "downloads": -1, "filename": "mlx.traceability-2.10.0.tar.gz", "has_sig": false, "md5_digest": "e84a80061fe8eb098da4bab08271a020", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61897, "upload_time": "2019-01-16T08:26:26", "url": "https://files.pythonhosted.org/packages/80/86/bf1a840aad10208ebdf30296c1b245d58c811acf78a673f7e8fad5f1a070/mlx.traceability-2.10.0.tar.gz" } ], "2.11.0": [ { "comment_text": "", "digests": { "md5": "dcc8a54f7c58c77cf9a546b3db294df5", "sha256": "dd34e2970848649ace7ebe4708742cd10e1cfe5de176cd3baa96a52fc2b703fb" }, "downloads": -1, "filename": "mlx.traceability-2.11.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dcc8a54f7c58c77cf9a546b3db294df5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 37972, "upload_time": "2019-01-30T13:06:17", "url": "https://files.pythonhosted.org/packages/70/19/053448a312c3e63d8a16fbe8a16a1bc20e70c07ac825fa0ad21a233eb4fe/mlx.traceability-2.11.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6cba7c1a80ee8b71ac01fb81f51407d9", "sha256": "c73662fb2867d9cd0af1baec17c1997e1eabf53f9a0b643b2f655875c4ec2bd3" }, "downloads": -1, "filename": "mlx.traceability-2.11.0.tar.gz", "has_sig": false, "md5_digest": "6cba7c1a80ee8b71ac01fb81f51407d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62628, "upload_time": "2019-01-30T13:06:19", "url": "https://files.pythonhosted.org/packages/37/da/8bcd8598ace08778eb52b42d1a49fbd8a2d9f00ab4049a7a94afb7f160ec/mlx.traceability-2.11.0.tar.gz" } ], "2.12.0": [ { "comment_text": "", "digests": { "md5": "dbd592e531dff0771e185d200c131b35", "sha256": "5a5b79fb5da7574d33bbd5a6fb5058bfdc6287f77e7765afd00ec4d437ceef25" }, "downloads": -1, "filename": "mlx.traceability-2.12.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dbd592e531dff0771e185d200c131b35", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 40360, "upload_time": "2019-02-19T14:54:48", "url": "https://files.pythonhosted.org/packages/59/20/1ec85f79b960e6877df63bda16a520e4c454149958c5ce398cb37615f78c/mlx.traceability-2.12.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3640e28bf752c69782c718b7642d6203", "sha256": "f51883bcbe75208c0355f7fbfade2c1af4c97e9433932781f0edc707ce7b19be" }, "downloads": -1, "filename": "mlx.traceability-2.12.0.tar.gz", "has_sig": false, "md5_digest": "3640e28bf752c69782c718b7642d6203", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68424, "upload_time": "2019-02-19T14:54:50", "url": "https://files.pythonhosted.org/packages/7d/0b/33fde5f5fafdc5e42c386710b51a869f78e8f918a8468d6d70e99eae05aa/mlx.traceability-2.12.0.tar.gz" } ], "2.13.0": [ { "comment_text": "", "digests": { "md5": "0b7f260ccbd0ce7e9355bb8539a058b0", "sha256": "315f271a915497c028618881501e43ab95e49578e718fbaaa77fde520634b878" }, "downloads": -1, "filename": "mlx.traceability-2.13.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0b7f260ccbd0ce7e9355bb8539a058b0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 40382, "upload_time": "2019-05-24T15:21:45", "url": "https://files.pythonhosted.org/packages/eb/3d/8cb7561a0d8751a69adb5ad0d89125c18defeafe546451a9078cb1c9e380/mlx.traceability-2.13.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d51bb6fa0fd515bead758adfe4c40f1", "sha256": "0bf88c0d4717c2482a634a0616a970149c447775ba9f12e60366302bdf5bcbff" }, "downloads": -1, "filename": "mlx.traceability-2.13.0.tar.gz", "has_sig": false, "md5_digest": "0d51bb6fa0fd515bead758adfe4c40f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68439, "upload_time": "2019-05-24T15:21:47", "url": "https://files.pythonhosted.org/packages/89/55/5686351045da65f20dc10baeb1618356e28bab9068510c245105ef34d9a4/mlx.traceability-2.13.0.tar.gz" } ], "2.14.0": [ { "comment_text": "", "digests": { "md5": "e1269d7880d8c6eaf539c8c7be62f733", "sha256": "fddfb982695420c59aca9948d6ce16869a5217004ddfc32f5e685cc304c2a82f" }, "downloads": -1, "filename": "mlx.traceability-2.14.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e1269d7880d8c6eaf539c8c7be62f733", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 40428, "upload_time": "2019-06-12T09:18:58", "url": "https://files.pythonhosted.org/packages/82/9d/df80ab1461762add587b1778677c15032f4836a581c5a8ab7cb4ab7d3c26/mlx.traceability-2.14.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "695311fd95a3d82f20669bce737f74dc", "sha256": "2c6c840939d3d1b80fdbeabbad2faa23e6ac70a6c74ba1a48d24ebc09c051c8c" }, "downloads": -1, "filename": "mlx.traceability-2.14.0.tar.gz", "has_sig": false, "md5_digest": "695311fd95a3d82f20669bce737f74dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68578, "upload_time": "2019-06-12T09:19:00", "url": "https://files.pythonhosted.org/packages/24/ad/6aeed345b0736dc64bf2557d0b975646d335f98e989432d3f16c4481aaeb/mlx.traceability-2.14.0.tar.gz" } ], "2.15.0": [ { "comment_text": "", "digests": { "md5": "83b513061b8ea4954a10adaf61229f0e", "sha256": "9f983fe981ad520f7945a87ac297788d17796cfa69821f8f1b7f604f5f87e1e9" }, "downloads": -1, "filename": "mlx.traceability-2.15.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "83b513061b8ea4954a10adaf61229f0e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 43217, "upload_time": "2019-06-19T13:53:17", "url": "https://files.pythonhosted.org/packages/d3/a3/e54b7d5245db4b77acfc80efe756f692319b1ac2d5bfad13881fafdeefdf/mlx.traceability-2.15.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7cef612d3ec179a01b94e019348c439b", "sha256": "e0631294f590d70c8e93a1d1ce819f0af1b8d73d1ea95c0bcc600521666db0e9" }, "downloads": -1, "filename": "mlx.traceability-2.15.0.tar.gz", "has_sig": false, "md5_digest": "7cef612d3ec179a01b94e019348c439b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72917, "upload_time": "2019-06-19T13:53:20", "url": "https://files.pythonhosted.org/packages/01/ec/5f1dc11e979e94f32ab819737f2fb4c7e835f0235034353410cd8e90eaed/mlx.traceability-2.15.0.tar.gz" } ], "2.16.0": [ { "comment_text": "", "digests": { "md5": "97847bcbfed96b96f7d1a4d6873111e3", "sha256": "022892bd5dc7e4ede757d9ec1ac5ce2791677da2cc8c07210d3a3d3efef2a91b" }, "downloads": -1, "filename": "mlx.traceability-2.16.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "97847bcbfed96b96f7d1a4d6873111e3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 55389, "upload_time": "2019-07-12T07:23:13", "url": "https://files.pythonhosted.org/packages/41/3b/ef2c0899f7748ce8c7ed7e15fe17ecc8e47224e0be22b1c766fd2a997b6b/mlx.traceability-2.16.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c511123e4d54cfcfc199ee4bd9bd531d", "sha256": "5b2f4e64984094e0e9cd4e327c2b229041cc98bd8c8feb7397fbff8ce8ff7468" }, "downloads": -1, "filename": "mlx.traceability-2.16.0.tar.gz", "has_sig": false, "md5_digest": "c511123e4d54cfcfc199ee4bd9bd531d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77271, "upload_time": "2019-07-12T07:23:16", "url": "https://files.pythonhosted.org/packages/a7/d3/29a50b4ede344f0f36562790a10a4753635a93e97a044bfbde23a223e595/mlx.traceability-2.16.0.tar.gz" } ], "2.17.0": [ { "comment_text": "", "digests": { "md5": "fed541d05f44eeb03f0dbea181ee167a", "sha256": "17cb10d3cc708a37ed509a1ba7e1dcbedbb6bfdc894f11d9385cfe5419dfba50" }, "downloads": -1, "filename": "mlx.traceability-2.17.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fed541d05f44eeb03f0dbea181ee167a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 57790, "upload_time": "2019-07-23T07:56:35", "url": "https://files.pythonhosted.org/packages/b5/5f/8e4cf5f391d097d5b0c0286cc98e7ef59f683aa0efc972ea721e6d5e63e1/mlx.traceability-2.17.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c27813a930a924c994e80d6456f27b7b", "sha256": "e96580562a6cc8ddfefbfd341e88dd9210e70950c8a377161c2e421e553200a9" }, "downloads": -1, "filename": "mlx.traceability-2.17.0.tar.gz", "has_sig": false, "md5_digest": "c27813a930a924c994e80d6456f27b7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81591, "upload_time": "2019-07-23T07:56:37", "url": "https://files.pythonhosted.org/packages/a5/3e/8fbbaf1dc7dd26562e7db571cf385aa99c9bf8b596c93e96c2cbb460eccd/mlx.traceability-2.17.0.tar.gz" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "47ad4e30598af8f9dfe053257ecccf01", "sha256": "281ef40891df2913deae77b4c308565043144cf60cfb1fd696af21c26af65d28" }, "downloads": -1, "filename": "mlx.traceability-2.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "47ad4e30598af8f9dfe053257ecccf01", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24452, "upload_time": "2018-01-26T08:47:53", "url": "https://files.pythonhosted.org/packages/c1/73/56a025f61ac7a48aff9d89ae3c828316c8794143dad77f7ca86c24eab776/mlx.traceability-2.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "91ab0c7ba2dfaf542af7dda1c9f32cd8", "sha256": "52cbf541081c2b6ddf8043bb054e2a9a050f06ee6f86937ae9af886a48a7533e" }, "downloads": -1, "filename": "mlx.traceability-2.2.0.tar.gz", "has_sig": false, "md5_digest": "91ab0c7ba2dfaf542af7dda1c9f32cd8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47239, "upload_time": "2018-01-26T08:47:54", "url": "https://files.pythonhosted.org/packages/a6/ea/f63f6ab20cbed9d5369b1f21b1974e7a9a662f48a49e62b73a23698e2a9a/mlx.traceability-2.2.0.tar.gz" } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "32205221ea614deb315fe6d5f0ea8de3", "sha256": "75cab2a5982b28028b1c972347185ca40d3669763e229a5ff3a5f8c114a1005c" }, "downloads": -1, "filename": "mlx.traceability-2.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "32205221ea614deb315fe6d5f0ea8de3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25599, "upload_time": "2018-01-30T14:26:22", "url": "https://files.pythonhosted.org/packages/d5/50/d123021e6662a2c62bb5b7be9191485c49e9b6011fc0611f38d76939b0d2/mlx.traceability-2.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "120361635bfdab9e73adf19199aa400d", "sha256": "f7d2512bc4b75d106fe070728fb5651a005576fd50fd82370db66c55a6f5e501" }, "downloads": -1, "filename": "mlx.traceability-2.3.0.tar.gz", "has_sig": false, "md5_digest": "120361635bfdab9e73adf19199aa400d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48840, "upload_time": "2018-01-30T14:26:24", "url": "https://files.pythonhosted.org/packages/68/45/5d1a2f33e7bca50462e4c28a7f398e6a21d15dc84c52c279c4c444ed99de/mlx.traceability-2.3.0.tar.gz" } ], "2.4.0": [ { "comment_text": "", "digests": { "md5": "da6703353014861bdd96ec76bf7437c2", "sha256": "f4df1a3e6f15072b4af4b670b539d814f6d3cc1423f5036ba0f0f93c4b957b21" }, "downloads": -1, "filename": "mlx.traceability-2.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "da6703353014861bdd96ec76bf7437c2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26769, "upload_time": "2018-02-27T09:00:41", "url": "https://files.pythonhosted.org/packages/d0/af/4175d1380b09f69c79674092c71ff223a488ec20212a38520cc1c7907415/mlx.traceability-2.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "faaacf87fe7cc66db4bf0b9508d94c33", "sha256": "dcb58e60a71070e9070867c16731e9a0153fc430d0a27a5a54919f1a95ddbf69" }, "downloads": -1, "filename": "mlx.traceability-2.4.0.tar.gz", "has_sig": false, "md5_digest": "faaacf87fe7cc66db4bf0b9508d94c33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49203, "upload_time": "2018-02-27T09:00:42", "url": "https://files.pythonhosted.org/packages/3a/e2/71f7d87a1acd225ab814da51cf7c6ecac1229cc4865dc3229f5b5bc8342f/mlx.traceability-2.4.0.tar.gz" } ], "2.5.0": [ { "comment_text": "", "digests": { "md5": "60074807b0f7ae3869b9f9cf8123e5ae", "sha256": "ea69bcd85a87ee2dac4cfbf391b78c47a1e52ed1bbc90ff696b7d255a40db730" }, "downloads": -1, "filename": "mlx.traceability-2.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "60074807b0f7ae3869b9f9cf8123e5ae", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27992, "upload_time": "2018-03-29T06:21:41", "url": "https://files.pythonhosted.org/packages/22/27/0d6ea3f146854f27df4e7a047dcdfaffa42f438795f34586e28e932d3d2a/mlx.traceability-2.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bd66e41ac0a34d7df8034efaeec3bac2", "sha256": "09cb7d749f6e7b501026ff00702747d692ca3121c4e2c744941973eb6ddb8daf" }, "downloads": -1, "filename": "mlx.traceability-2.5.0.tar.gz", "has_sig": false, "md5_digest": "bd66e41ac0a34d7df8034efaeec3bac2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52163, "upload_time": "2018-03-29T06:21:42", "url": "https://files.pythonhosted.org/packages/bb/5f/bdf8596db1854700fedd86d0bac2fe1a641ba99fda8c720197e78dde6eec/mlx.traceability-2.5.0.tar.gz" } ], "2.5.1": [ { "comment_text": "", "digests": { "md5": "e540109e114326faa4e3613724107d06", "sha256": "f3e907e41d856d13a51ed76162f3ef6fdab7845a46d0dc95bc0630663bac8eaf" }, "downloads": -1, "filename": "mlx.traceability-2.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e540109e114326faa4e3613724107d06", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21425, "upload_time": "2018-04-12T07:33:10", "url": "https://files.pythonhosted.org/packages/a0/a0/7f38c4d62bd476a3f7e59ef404682dc4ea775c6ed524c669c4ca856fc631/mlx.traceability-2.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2cb7090de7df059a59d13b7b7ec3f2d", "sha256": "3dbb8f266661ef2ea4a0e73cd8cbe277339755091b1556bae3a781cd664cc652" }, "downloads": -1, "filename": "mlx.traceability-2.5.1.tar.gz", "has_sig": false, "md5_digest": "c2cb7090de7df059a59d13b7b7ec3f2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52583, "upload_time": "2018-04-12T07:33:10", "url": "https://files.pythonhosted.org/packages/84/ca/7b1db879381538511feeb1e85a1509d3437082853a0cf4919c7afe971843/mlx.traceability-2.5.1.tar.gz" } ], "2.5.2": [ { "comment_text": "", "digests": { "md5": "901ed4429059ab9fc530f046b8f3b172", "sha256": "769cca5f6a78904652a06b0e4e3f21f836fcba258d48ce490710804bba79345e" }, "downloads": -1, "filename": "mlx.traceability-2.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "901ed4429059ab9fc530f046b8f3b172", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21473, "upload_time": "2018-07-13T07:21:39", "url": "https://files.pythonhosted.org/packages/ad/f2/3d336dbf0b7b5d996003b6882e3f87c053e328bbe5753be30bde7bb1ef64/mlx.traceability-2.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f365c3a15dd632dd6804ae8ee40c31f6", "sha256": "583659bf6235e137d9bcca89af1c1b3f30907b228d25dd234b49cdb35cb6cc30" }, "downloads": -1, "filename": "mlx.traceability-2.5.2.tar.gz", "has_sig": false, "md5_digest": "f365c3a15dd632dd6804ae8ee40c31f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52783, "upload_time": "2018-07-13T07:21:40", "url": "https://files.pythonhosted.org/packages/21/b8/227f04752b9486e3c97806be4c07e965039162cb54a06d61bbf559490c57/mlx.traceability-2.5.2.tar.gz" } ], "2.6.0": [ { "comment_text": "", "digests": { "md5": "68522c6515128b405c6c850f02a5c30b", "sha256": "43220e6cd3bcb2e15dabc334fc91856566c077acea760f59730b8f0a2a4c7782" }, "downloads": -1, "filename": "mlx.traceability-2.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "68522c6515128b405c6c850f02a5c30b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23013, "upload_time": "2018-08-09T12:43:52", "url": "https://files.pythonhosted.org/packages/66/f3/ec7ae18265aceac1125c13c307a2faf0b980ec386cb5310b60bdac29fb95/mlx.traceability-2.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c7f5ba26712bb544714146cd11ab6fe7", "sha256": "3778f413054561d3bd1de346abad62400a6869dccb0064e83d09505f9e552e59" }, "downloads": -1, "filename": "mlx.traceability-2.6.0.tar.gz", "has_sig": false, "md5_digest": "c7f5ba26712bb544714146cd11ab6fe7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56990, "upload_time": "2018-08-09T12:43:53", "url": "https://files.pythonhosted.org/packages/05/3c/890eedd53c90caa3353818675225d743a7848539b4124720566f11fd9ba9/mlx.traceability-2.6.0.tar.gz" } ], "2.7.0": [ { "comment_text": "", "digests": { "md5": "d5bad2aee70fd2acf81851d3ca174ba1", "sha256": "2dcf2efd9fc054d0747239d633628b5c53950fdbdd1426d26981e3a5a0a73dc9" }, "downloads": -1, "filename": "mlx.traceability-2.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d5bad2aee70fd2acf81851d3ca174ba1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23606, "upload_time": "2018-08-27T17:26:29", "url": "https://files.pythonhosted.org/packages/22/d9/ea97d11ed5d2ff8c8a7360a0f9340c42aa06388b0d2deaefb52e9d05da71/mlx.traceability-2.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "43cbff251c5493ef00dbd25bd43ed3a9", "sha256": "d749452caa5bcce5e2b76627867ca400cfd00299ce01497d3aa478786f7b1fe8" }, "downloads": -1, "filename": "mlx.traceability-2.7.0.tar.gz", "has_sig": false, "md5_digest": "43cbff251c5493ef00dbd25bd43ed3a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58462, "upload_time": "2018-08-27T17:26:30", "url": "https://files.pythonhosted.org/packages/f7/00/e47763f4c495451d52afbe83f6f76a787397526fef2c3cbdf5c2441d03f7/mlx.traceability-2.7.0.tar.gz" } ], "2.8.0": [ { "comment_text": "", "digests": { "md5": "98466f31a6f8c0abf55761efdbdc0dc7", "sha256": "f62a209d00d817db213bea76a9a3006eced6049464767b0130fbfc10cfabef0a" }, "downloads": -1, "filename": "mlx.traceability-2.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "98466f31a6f8c0abf55761efdbdc0dc7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24113, "upload_time": "2018-08-28T08:50:20", "url": "https://files.pythonhosted.org/packages/b2/11/d410b474bee4c0206f87639bf1e1bc0de36baca5d93270eb48b2deb6e80b/mlx.traceability-2.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8856ed363bb11c77cd47d617d38f886b", "sha256": "4564cfe28366cbc2b878a0576ec3faade2c3a62b8d1abe52e169543c3bc2bd66" }, "downloads": -1, "filename": "mlx.traceability-2.8.0.tar.gz", "has_sig": false, "md5_digest": "8856ed363bb11c77cd47d617d38f886b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 59621, "upload_time": "2018-08-28T08:50:21", "url": "https://files.pythonhosted.org/packages/81/45/866ca69938bce1ba00841a1686c06d233fe5f5f2cb6fab6fd0eefd00e666/mlx.traceability-2.8.0.tar.gz" } ], "2.8.1": [ { "comment_text": "", "digests": { "md5": "a32051a66308ff26c7b2de2e9444f0d4", "sha256": "0967d039a81b6659a5c137134193d321054e17b96e2cad0af3d75e2f57e123e9" }, "downloads": -1, "filename": "mlx.traceability-2.8.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a32051a66308ff26c7b2de2e9444f0d4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24118, "upload_time": "2018-08-29T10:10:06", "url": "https://files.pythonhosted.org/packages/ef/4d/8f9073558f8036ea78cec86a27d231d12d5cd6a8b22e4f83fc065dc172c3/mlx.traceability-2.8.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e841e394aeaffe8ed6d979f7f6b0e82", "sha256": "8a09fef1a6e08b0af1bef6471665395765e0d7f42fb72f05d5404e2698c679d7" }, "downloads": -1, "filename": "mlx.traceability-2.8.1.tar.gz", "has_sig": false, "md5_digest": "6e841e394aeaffe8ed6d979f7f6b0e82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 59630, "upload_time": "2018-08-29T10:10:07", "url": "https://files.pythonhosted.org/packages/79/67/30c9b4a151051acbe64ace32851a0bc5a2c04fcd07a5edd318ba9699421a/mlx.traceability-2.8.1.tar.gz" } ], "2.8.2": [ { "comment_text": "", "digests": { "md5": "0dac03b15c5636988aa2e1376a56c569", "sha256": "343e5017e567b728e98a2861596dbb0035cb7d3808b0fa77dcc1b1c811809640" }, "downloads": -1, "filename": "mlx.traceability-2.8.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0dac03b15c5636988aa2e1376a56c569", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 37317, "upload_time": "2018-11-29T21:14:06", "url": "https://files.pythonhosted.org/packages/11/51/0278ffac81ffd0803adc1f9e7cabe74bc17e97c6f42a0cc122d84e4acb41/mlx.traceability-2.8.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b58202cba6c6bd3a5943cd7451b15e9", "sha256": "d0071de47027723377f236409d2fd6906618e3b505068e9703b6fc1d7ed28fd9" }, "downloads": -1, "filename": "mlx.traceability-2.8.2.tar.gz", "has_sig": false, "md5_digest": "8b58202cba6c6bd3a5943cd7451b15e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 60753, "upload_time": "2018-11-29T21:14:08", "url": "https://files.pythonhosted.org/packages/61/1b/8fea946a19ef23739d2d5abaa32428fcf9177740ec4cdff8a18ef13c8fb2/mlx.traceability-2.8.2.tar.gz" } ], "2.9.0": [ { "comment_text": "", "digests": { "md5": "75d84fca26a76d437490b1f841a545f6", "sha256": "b65d7275c0c35a256db893f346c6ab357157653ad45b425defec955c8f3a1e08" }, "downloads": -1, "filename": "mlx.traceability-2.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "75d84fca26a76d437490b1f841a545f6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 37436, "upload_time": "2018-12-11T09:46:22", "url": "https://files.pythonhosted.org/packages/0e/8a/351d740bfcc5863f9257f893a3a092c51448315af3b655197609507099d7/mlx.traceability-2.9.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b097f6d99672230c663ff6513971b230", "sha256": "2b50c93f194971b25109c6724b369673696b551b4f2f2654d349a2ba16cfe450" }, "downloads": -1, "filename": "mlx.traceability-2.9.0.tar.gz", "has_sig": false, "md5_digest": "b097f6d99672230c663ff6513971b230", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61382, "upload_time": "2018-12-11T09:46:24", "url": "https://files.pythonhosted.org/packages/eb/4f/2b7da59187032e5aad4ce599f3b41d91385d05d1879526f8bd07d3b383b7/mlx.traceability-2.9.0.tar.gz" } ], "3.1.0": [ { "comment_text": "", "digests": { "md5": "9a6892e96ccd1be5d216169e629ef09e", "sha256": "cad7c508c71c433151bb33e3f96ec7b12eb01c2353be8d1b5b2b1f56db5f11c8" }, "downloads": -1, "filename": "mlx.traceability-3.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9a6892e96ccd1be5d216169e629ef09e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 58752, "upload_time": "2019-07-30T16:38:03", "url": "https://files.pythonhosted.org/packages/4d/bb/333890ebea10d721148f5beedfcf1c7ccbaba23ed1c4d1b60d54f614ec7a/mlx.traceability-3.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e47a6946a82b61114b9183e807a70d39", "sha256": "f5af61fe3f1537f15f4f18ff23e141907590933d4ea7feec9dec1c57620beec6" }, "downloads": -1, "filename": "mlx.traceability-3.1.0.tar.gz", "has_sig": false, "md5_digest": "e47a6946a82b61114b9183e807a70d39", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83761, "upload_time": "2019-07-30T16:38:05", "url": "https://files.pythonhosted.org/packages/c8/7c/8e75163db4a36a7b439d8a1a8152c554417776bd619e7da84657cb588881/mlx.traceability-3.1.0.tar.gz" } ], "3.2.0": [ { "comment_text": "", "digests": { "md5": "1dae8ab8a917248556a696861cfb2f0b", "sha256": "661c2f8b343efc666f046c24beb62bc5d7506027b67dbd5f20bcf5077dc25f8b" }, "downloads": -1, "filename": "mlx.traceability-3.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1dae8ab8a917248556a696861cfb2f0b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 61950, "upload_time": "2019-07-31T23:09:27", "url": "https://files.pythonhosted.org/packages/a6/82/8cbc014b901cb1012d6c697a149f36ffb2c0df5830abb88b5a9643d84416/mlx.traceability-3.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "69b4b2be5517333475576d2abb1c3cbd", "sha256": "77f77b8ee00f5504f1aa5402c90a8e4b143d30fd4a64d846a383e42338112ff0" }, "downloads": -1, "filename": "mlx.traceability-3.2.0.tar.gz", "has_sig": false, "md5_digest": "69b4b2be5517333475576d2abb1c3cbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89275, "upload_time": "2019-07-31T23:09:29", "url": "https://files.pythonhosted.org/packages/16/fd/2d4f2c9af8886b1064de6d5240514e17fdc68af8f539ec0b4d57ab9f84ff/mlx.traceability-3.2.0.tar.gz" } ], "3.2.1": [ { "comment_text": "", "digests": { "md5": "92fbf4b3f4e732f1d1aa578048238961", "sha256": "e7dcab140128a518554f78c751a9566609ac8fbd3748c202a44a33a6a5f87b03" }, "downloads": -1, "filename": "mlx.traceability-3.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "92fbf4b3f4e732f1d1aa578048238961", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 61951, "upload_time": "2019-08-01T10:05:31", "url": "https://files.pythonhosted.org/packages/a8/8b/508dfd7bf1ae7215be47328de2543e3eeff1b705f4e5ce409a9329e67afa/mlx.traceability-3.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a899c17127ca69458add055658a1de80", "sha256": "11ca57c4b394246366cb80d7ff99deec781f7bc1daeb890610a2eecdfe9da013" }, "downloads": -1, "filename": "mlx.traceability-3.2.1.tar.gz", "has_sig": false, "md5_digest": "a899c17127ca69458add055658a1de80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89271, "upload_time": "2019-08-01T10:05:34", "url": "https://files.pythonhosted.org/packages/e9/ef/62226c83b7e36ae47e9af63937dfba0639db9d507aa87a6cc966a8df141c/mlx.traceability-3.2.1.tar.gz" } ], "3.3.0": [ { "comment_text": "", "digests": { "md5": "85ba028c6d23c902a7bcbf0a271f94e6", "sha256": "cf3a0aabe5d32a808abc437144d5d216459b8bc87e373b3409930331995d26cc" }, "downloads": -1, "filename": "mlx.traceability-3.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "85ba028c6d23c902a7bcbf0a271f94e6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 62361, "upload_time": "2019-08-06T13:13:36", "url": "https://files.pythonhosted.org/packages/40/5c/a01d3e02c4e123cb8a7a703c137cddb9e8ed14ed70ed8e2ecbd5893295b0/mlx.traceability-3.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aeccdad65c5172d7ed43b398b904cc03", "sha256": "f6a6e03034ab367c68b3fe5bfa0a97bfe5c8cfe6ed3987ef2c7349babc2075c8" }, "downloads": -1, "filename": "mlx.traceability-3.3.0.tar.gz", "has_sig": false, "md5_digest": "aeccdad65c5172d7ed43b398b904cc03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89971, "upload_time": "2019-08-06T13:13:38", "url": "https://files.pythonhosted.org/packages/bf/09/d9bb55bd2ed87ef22c718057a0ca86cd2bd2f3ff47c48344b1dd0b27b82f/mlx.traceability-3.3.0.tar.gz" } ], "3.4.0": [ { "comment_text": "", "digests": { "md5": "68d3cd3c28c1ca3d85b9ff78284653f5", "sha256": "f71f15549a0f9463436bab00a0288ead983de4ce10a45dce5c08fe2e54c118f9" }, "downloads": -1, "filename": "mlx.traceability-3.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "68d3cd3c28c1ca3d85b9ff78284653f5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63073, "upload_time": "2019-08-14T04:54:09", "url": "https://files.pythonhosted.org/packages/52/3d/ba6a8bbd85ca723bf1ea7227b087c048872615ac14923c9df32f4a659e12/mlx.traceability-3.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a9eb4c9bca9522c91861ab229014a1ba", "sha256": "10074ae2a70eb87e02018a3f30474071b0b91b2d42bdd83c2ab046c7cca2d488" }, "downloads": -1, "filename": "mlx.traceability-3.4.0.tar.gz", "has_sig": false, "md5_digest": "a9eb4c9bca9522c91861ab229014a1ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90712, "upload_time": "2019-08-14T04:54:11", "url": "https://files.pythonhosted.org/packages/f3/7d/5a0ed5e4adfc7634027b9fe4769831a5d15e1eabd1dd0d8d4120e50040c7/mlx.traceability-3.4.0.tar.gz" } ], "3.4.1": [ { "comment_text": "", "digests": { "md5": "1b2232872fea08fc7111e90e8419f526", "sha256": "cc37e119f8638e4c95b1cd3b4c0373e801c32d7b0f5c8df6b672b047b577ce91" }, "downloads": -1, "filename": "mlx.traceability-3.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1b2232872fea08fc7111e90e8419f526", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63084, "upload_time": "2019-08-14T13:38:53", "url": "https://files.pythonhosted.org/packages/ab/86/4b405add10993a9dd227ddfe88c333097615ff9070529ecd5aeaf18e0c38/mlx.traceability-3.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6a887c70bded1c2a904cbc43259ccf9a", "sha256": "208e0640c7c164cbff130a8f4711e79c82e10f1f53138ff6dcd573654920813a" }, "downloads": -1, "filename": "mlx.traceability-3.4.1.tar.gz", "has_sig": false, "md5_digest": "6a887c70bded1c2a904cbc43259ccf9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90699, "upload_time": "2019-08-14T13:38:55", "url": "https://files.pythonhosted.org/packages/28/fa/a8356f10979c20b7e451e2bbe73a2b161218e7c79c8f488a1e9d2bbf11c6/mlx.traceability-3.4.1.tar.gz" } ], "3.4.2": [ { "comment_text": "", "digests": { "md5": "66e68545d13f1e36be46c8e4ad49e251", "sha256": "b97d92ce087b41a7e79ec8076f5ad3de18409fc38db4f16ec4c49213819ce221" }, "downloads": -1, "filename": "mlx.traceability-3.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "66e68545d13f1e36be46c8e4ad49e251", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63048, "upload_time": "2019-08-26T12:59:04", "url": "https://files.pythonhosted.org/packages/47/a1/a719e923460c33f4a0edfc3a5bf679411d7d04377050292c012362c361c9/mlx.traceability-3.4.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "982bd17a46f67b23a58b882112f58458", "sha256": "25a6e04386860707f1fac31cc79f43e54fb1228f39b0c1df2397dcae39118970" }, "downloads": -1, "filename": "mlx.traceability-3.4.2.tar.gz", "has_sig": false, "md5_digest": "982bd17a46f67b23a58b882112f58458", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90685, "upload_time": "2019-08-26T12:59:07", "url": "https://files.pythonhosted.org/packages/1c/c8/51128d0875bd82eadc5cb9eedf2b45c9238567c386133fb05033023186f6/mlx.traceability-3.4.2.tar.gz" } ], "4.0.0": [ { "comment_text": "", "digests": { "md5": "bda2939954afc4a49517cb28def9b2de", "sha256": "2785f3d95d4248c1d4a2f3fdc77ba5c7d2605fc6527e7d067eb20a9f60ad7952" }, "downloads": -1, "filename": "mlx.traceability-4.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bda2939954afc4a49517cb28def9b2de", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 62673, "upload_time": "2019-08-30T07:33:14", "url": "https://files.pythonhosted.org/packages/23/69/5fc3abb7e7a89767dcf75bd3efeb7bb0c9378c1359dc6eb55f475ec5b1da/mlx.traceability-4.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1e702e285e3b85aff7c1dd064abd7abb", "sha256": "428755dbc2828410c42490de0a35818d2ca380b2581e2f1a14eb016611293068" }, "downloads": -1, "filename": "mlx.traceability-4.0.0.tar.gz", "has_sig": false, "md5_digest": "1e702e285e3b85aff7c1dd064abd7abb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90313, "upload_time": "2019-08-30T07:33:17", "url": "https://files.pythonhosted.org/packages/51/ac/ff0ff48d8624e04c8aa25e0297345c036692c39aaf82120f310b9c3cb9bd/mlx.traceability-4.0.0.tar.gz" } ], "4.1.0": [ { "comment_text": "", "digests": { "md5": "d498af368b6d969c32054c70d19ddabd", "sha256": "7b0336265fe9d5c30d0fda7e5c8eb2a56bd64a6f20818a3d79a005e34dc180b9" }, "downloads": -1, "filename": "mlx.traceability-4.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d498af368b6d969c32054c70d19ddabd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63816, "upload_time": "2019-09-09T10:23:38", "url": "https://files.pythonhosted.org/packages/38/4b/32353df31aff7619e5cc6062eeac64385a7f153be8adfcd72cd65e02d35b/mlx.traceability-4.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7eb0621fb638b3b7110f4fe9378dc90a", "sha256": "d90eb43e1ee8ccfbcda5e9db55d1f13710629843f0b78f04ffc04734feebc9c7" }, "downloads": -1, "filename": "mlx.traceability-4.1.0.tar.gz", "has_sig": false, "md5_digest": "7eb0621fb638b3b7110f4fe9378dc90a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 91751, "upload_time": "2019-09-09T10:23:41", "url": "https://files.pythonhosted.org/packages/ed/d2/c4badd2dd31e71bfb741264786ca6331954e8b44cac80663e0253bf3de71/mlx.traceability-4.1.0.tar.gz" } ], "4.1.1": [ { "comment_text": "", "digests": { "md5": "711c59bf052513b98f7c8b64a751c556", "sha256": "39c21617def63bc1364ac9bfd52326100bbe43a518fa18cb4186c5e220f71922" }, "downloads": -1, "filename": "mlx.traceability-4.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "711c59bf052513b98f7c8b64a751c556", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 64289, "upload_time": "2019-09-11T15:12:00", "url": "https://files.pythonhosted.org/packages/2d/42/2597ff8e0f61717a9f0c998e6ec0f4414c60e6e2f17eb7458b0f0db3f805/mlx.traceability-4.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e4b71b0b1f290e4dceb940cdb73e7b98", "sha256": "92b058220a96567b070be4176a3f73d816e24fd6526ae918184309b9e25889ef" }, "downloads": -1, "filename": "mlx.traceability-4.1.1.tar.gz", "has_sig": false, "md5_digest": "e4b71b0b1f290e4dceb940cdb73e7b98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 92550, "upload_time": "2019-09-11T15:12:02", "url": "https://files.pythonhosted.org/packages/3b/f6/6488737ccb40e9ca741e55b1756e369f525e05af742ca6d8ecd574c5b417/mlx.traceability-4.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "711c59bf052513b98f7c8b64a751c556", "sha256": "39c21617def63bc1364ac9bfd52326100bbe43a518fa18cb4186c5e220f71922" }, "downloads": -1, "filename": "mlx.traceability-4.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "711c59bf052513b98f7c8b64a751c556", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 64289, "upload_time": "2019-09-11T15:12:00", "url": "https://files.pythonhosted.org/packages/2d/42/2597ff8e0f61717a9f0c998e6ec0f4414c60e6e2f17eb7458b0f0db3f805/mlx.traceability-4.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e4b71b0b1f290e4dceb940cdb73e7b98", "sha256": "92b058220a96567b070be4176a3f73d816e24fd6526ae918184309b9e25889ef" }, "downloads": -1, "filename": "mlx.traceability-4.1.1.tar.gz", "has_sig": false, "md5_digest": "e4b71b0b1f290e4dceb940cdb73e7b98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 92550, "upload_time": "2019-09-11T15:12:02", "url": "https://files.pythonhosted.org/packages/3b/f6/6488737ccb40e9ca741e55b1756e369f525e05af742ca6d8ecd574c5b417/mlx.traceability-4.1.1.tar.gz" } ] }