From 7d99a9dab28637e3515dc67cdad8c1f5829a5b6c Mon Sep 17 00:00:00 2001 From: Emmanuelle Vargas-Gonzalez Date: Fri, 16 Oct 2020 16:40:25 -0400 Subject: [PATCH 1/6] remove docs in wrong locations or directories --- docs/api/equivalence/graph/stix2.equivalence.graph.rst | 5 ----- docs/api/equivalence/object/stix2.equivalence.object.rst | 5 ----- .../compare/stix2.equivalence.pattern.compare.comparison.rst | 5 ----- .../stix2.equivalence.pattern.compare.observation.rst | 5 ----- .../stix2.equivalence.pattern.transform.comparison.rst | 5 ----- .../stix2.equivalence.pattern.transform.observation.rst | 5 ----- .../stix2.equivalence.pattern.transform.specials.rst | 5 ----- 7 files changed, 35 deletions(-) delete mode 100644 docs/api/equivalence/graph/stix2.equivalence.graph.rst delete mode 100644 docs/api/equivalence/object/stix2.equivalence.object.rst delete mode 100644 docs/api/equivalence/pattern/compare/stix2.equivalence.pattern.compare.comparison.rst delete mode 100644 docs/api/equivalence/pattern/compare/stix2.equivalence.pattern.compare.observation.rst delete mode 100644 docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.comparison.rst delete mode 100644 docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.observation.rst delete mode 100644 docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.specials.rst diff --git a/docs/api/equivalence/graph/stix2.equivalence.graph.rst b/docs/api/equivalence/graph/stix2.equivalence.graph.rst deleted file mode 100644 index deb3dde..0000000 --- a/docs/api/equivalence/graph/stix2.equivalence.graph.rst +++ /dev/null @@ -1,5 +0,0 @@ -graph -===== - -.. automodule:: stix2.equivalence.graph - :members: diff --git a/docs/api/equivalence/object/stix2.equivalence.object.rst b/docs/api/equivalence/object/stix2.equivalence.object.rst deleted file mode 100644 index 41c8f52..0000000 --- a/docs/api/equivalence/object/stix2.equivalence.object.rst +++ /dev/null @@ -1,5 +0,0 @@ -object -====== - -.. automodule:: stix2.equivalence.object - :members: diff --git a/docs/api/equivalence/pattern/compare/stix2.equivalence.pattern.compare.comparison.rst b/docs/api/equivalence/pattern/compare/stix2.equivalence.pattern.compare.comparison.rst deleted file mode 100644 index 0b886be..0000000 --- a/docs/api/equivalence/pattern/compare/stix2.equivalence.pattern.compare.comparison.rst +++ /dev/null @@ -1,5 +0,0 @@ -comparison -============== - -.. automodule:: stix2.equivalence.pattern.compare.comparison - :members: diff --git a/docs/api/equivalence/pattern/compare/stix2.equivalence.pattern.compare.observation.rst b/docs/api/equivalence/pattern/compare/stix2.equivalence.pattern.compare.observation.rst deleted file mode 100644 index 16bd619..0000000 --- a/docs/api/equivalence/pattern/compare/stix2.equivalence.pattern.compare.observation.rst +++ /dev/null @@ -1,5 +0,0 @@ -observation -============== - -.. automodule:: stix2.equivalence.pattern.compare.observation - :members: diff --git a/docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.comparison.rst b/docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.comparison.rst deleted file mode 100644 index 6364561..0000000 --- a/docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.comparison.rst +++ /dev/null @@ -1,5 +0,0 @@ -comparison -============== - -.. automodule:: stix2.equivalence.pattern.transform.comparison - :members: diff --git a/docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.observation.rst b/docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.observation.rst deleted file mode 100644 index f67fb1b..0000000 --- a/docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.observation.rst +++ /dev/null @@ -1,5 +0,0 @@ -observation -============== - -.. automodule:: stix2.equivalence.pattern.transform.observation - :members: diff --git a/docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.specials.rst b/docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.specials.rst deleted file mode 100644 index 8b61b69..0000000 --- a/docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.specials.rst +++ /dev/null @@ -1,5 +0,0 @@ -specials -============== - -.. automodule:: stix2.equivalence.pattern.transform.specials - :members: From 5ec001d3244203936adbc13aec85f3ff7d5513d6 Mon Sep 17 00:00:00 2001 From: Emmanuelle Vargas-Gonzalez Date: Fri, 16 Oct 2020 16:42:17 -0400 Subject: [PATCH 2/6] add new rst files and directories --- .../compare/stix2.equivalence.pattern.compare.comparison.rst | 5 +++++ .../stix2.equivalence.pattern.compare.observation.rst | 5 +++++ .../pattern/stix2.equivalence.pattern.compare.rst | 5 +++++ .../pattern/stix2.equivalence.pattern.transform.rst | 5 +++++ .../stix2.equivalence.pattern.transform.comparison.rst | 5 +++++ .../stix2.equivalence.pattern.transform.observation.rst | 5 +++++ .../stix2.equivalence.pattern.transform.specials.rst | 5 +++++ docs/api/equivalence/stix2.equivalence.graph.rst | 5 +++++ docs/api/equivalence/stix2.equivalence.object.rst | 5 +++++ 9 files changed, 45 insertions(+) create mode 100644 docs/api/equivalence/pattern/compare/stix2.equivalence.pattern.compare.comparison.rst create mode 100644 docs/api/equivalence/pattern/compare/stix2.equivalence.pattern.compare.observation.rst create mode 100644 docs/api/equivalence/pattern/stix2.equivalence.pattern.compare.rst create mode 100644 docs/api/equivalence/pattern/stix2.equivalence.pattern.transform.rst create mode 100644 docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.comparison.rst create mode 100644 docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.observation.rst create mode 100644 docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.specials.rst create mode 100644 docs/api/equivalence/stix2.equivalence.graph.rst create mode 100644 docs/api/equivalence/stix2.equivalence.object.rst diff --git a/docs/api/equivalence/pattern/compare/stix2.equivalence.pattern.compare.comparison.rst b/docs/api/equivalence/pattern/compare/stix2.equivalence.pattern.compare.comparison.rst new file mode 100644 index 0000000..37c6cc0 --- /dev/null +++ b/docs/api/equivalence/pattern/compare/stix2.equivalence.pattern.compare.comparison.rst @@ -0,0 +1,5 @@ +comparison +============================================ + +.. automodule:: stix2.equivalence.pattern.compare.comparison + :members: \ No newline at end of file diff --git a/docs/api/equivalence/pattern/compare/stix2.equivalence.pattern.compare.observation.rst b/docs/api/equivalence/pattern/compare/stix2.equivalence.pattern.compare.observation.rst new file mode 100644 index 0000000..463e11f --- /dev/null +++ b/docs/api/equivalence/pattern/compare/stix2.equivalence.pattern.compare.observation.rst @@ -0,0 +1,5 @@ +observation +============================================= + +.. automodule:: stix2.equivalence.pattern.compare.observation + :members: \ No newline at end of file diff --git a/docs/api/equivalence/pattern/stix2.equivalence.pattern.compare.rst b/docs/api/equivalence/pattern/stix2.equivalence.pattern.compare.rst new file mode 100644 index 0000000..3f64bea --- /dev/null +++ b/docs/api/equivalence/pattern/stix2.equivalence.pattern.compare.rst @@ -0,0 +1,5 @@ +compare +================================= + +.. automodule:: stix2.equivalence.pattern.compare + :members: \ No newline at end of file diff --git a/docs/api/equivalence/pattern/stix2.equivalence.pattern.transform.rst b/docs/api/equivalence/pattern/stix2.equivalence.pattern.transform.rst new file mode 100644 index 0000000..a26102b --- /dev/null +++ b/docs/api/equivalence/pattern/stix2.equivalence.pattern.transform.rst @@ -0,0 +1,5 @@ +transform +=================================== + +.. automodule:: stix2.equivalence.pattern.transform + :members: \ No newline at end of file diff --git a/docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.comparison.rst b/docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.comparison.rst new file mode 100644 index 0000000..e2b5d42 --- /dev/null +++ b/docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.comparison.rst @@ -0,0 +1,5 @@ +comparison +============================================== + +.. automodule:: stix2.equivalence.pattern.transform.comparison + :members: \ No newline at end of file diff --git a/docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.observation.rst b/docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.observation.rst new file mode 100644 index 0000000..607bdcf --- /dev/null +++ b/docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.observation.rst @@ -0,0 +1,5 @@ +observation +=============================================== + +.. automodule:: stix2.equivalence.pattern.transform.observation + :members: \ No newline at end of file diff --git a/docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.specials.rst b/docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.specials.rst new file mode 100644 index 0000000..f8191c3 --- /dev/null +++ b/docs/api/equivalence/pattern/transform/stix2.equivalence.pattern.transform.specials.rst @@ -0,0 +1,5 @@ +specials +============================================ + +.. automodule:: stix2.equivalence.pattern.transform.specials + :members: \ No newline at end of file diff --git a/docs/api/equivalence/stix2.equivalence.graph.rst b/docs/api/equivalence/stix2.equivalence.graph.rst new file mode 100644 index 0000000..0cc2922 --- /dev/null +++ b/docs/api/equivalence/stix2.equivalence.graph.rst @@ -0,0 +1,5 @@ +graph +======================= + +.. automodule:: stix2.equivalence.graph + :members: \ No newline at end of file diff --git a/docs/api/equivalence/stix2.equivalence.object.rst b/docs/api/equivalence/stix2.equivalence.object.rst new file mode 100644 index 0000000..76f5274 --- /dev/null +++ b/docs/api/equivalence/stix2.equivalence.object.rst @@ -0,0 +1,5 @@ +object +======================== + +.. automodule:: stix2.equivalence.object + :members: \ No newline at end of file From fc600df5f16c25ec768a1412c3a3d73cdf081f31 Mon Sep 17 00:00:00 2001 From: Emmanuelle Vargas-Gonzalez Date: Fri, 16 Oct 2020 16:43:12 -0400 Subject: [PATCH 3/6] update .gitignore and conf.py --- .gitignore | 3 ++- docs/conf.py | 22 +++++++++++++++------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 9758937..72b31cd 100644 --- a/.gitignore +++ b/.gitignore @@ -55,7 +55,8 @@ coverage.xml # Sphinx documentation docs/_build/ .ipynb_checkpoints -default_sem_eq_weights.rst +graph_default_sem_eq_weights.rst +object_default_sem_eq_weights.rst # PyBuilder target/ diff --git a/docs/conf.py b/docs/conf.py index 8b372d5..9723e39 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -8,7 +8,8 @@ from six import class_types from sphinx.ext.autodoc import ClassDocumenter from stix2.base import _STIXBase -from stix2.environment import WEIGHTS +from stix2.equivalence.graph import GRAPH_WEIGHTS +from stix2.equivalence.object import WEIGHTS from stix2.version import __version__ sys.path.insert(0, os.path.abspath('..')) @@ -62,12 +63,19 @@ latex_documents = [ ] # Add a formatted version of environment.WEIGHTS -default_sem_eq_weights = json.dumps(WEIGHTS, indent=4, default=lambda o: o.__name__) -default_sem_eq_weights = default_sem_eq_weights.replace('\n', '\n ') -default_sem_eq_weights = default_sem_eq_weights.replace(' "', ' ') -default_sem_eq_weights = default_sem_eq_weights.replace('"\n', '\n') -with open('default_sem_eq_weights.rst', 'w') as f: - f.write(".. code-block:: py\n\n {}\n\n".format(default_sem_eq_weights)) +object_default_sem_eq_weights = json.dumps(WEIGHTS, indent=4, default=lambda o: o.__name__) +object_default_sem_eq_weights = object_default_sem_eq_weights.replace('\n', '\n ') +object_default_sem_eq_weights = object_default_sem_eq_weights.replace(' "', ' ') +object_default_sem_eq_weights = object_default_sem_eq_weights.replace('"\n', '\n') +with open('object_default_sem_eq_weights.rst', 'w') as f: + f.write(".. code-block:: python\n\n {}\n\n".format(object_default_sem_eq_weights)) + +graph_default_sem_eq_weights = json.dumps(GRAPH_WEIGHTS, indent=4, default=lambda o: o.__name__) +graph_default_sem_eq_weights = graph_default_sem_eq_weights.replace('\n', '\n ') +graph_default_sem_eq_weights = graph_default_sem_eq_weights.replace(' "', ' ') +graph_default_sem_eq_weights = graph_default_sem_eq_weights.replace('"\n', '\n') +with open('graph_default_sem_eq_weights.rst', 'w') as f: + f.write(".. code-block:: python\n\n {}\n\n".format(graph_default_sem_eq_weights)) def get_property_type(prop): From 92ab1227edd28cf3da366e792a626c6f5c9a1d85 Mon Sep 17 00:00:00 2001 From: Emmanuelle Vargas-Gonzalez Date: Fri, 16 Oct 2020 17:12:52 -0400 Subject: [PATCH 4/6] docstrings, changes to equivalence.ipynb --- docs/guide/equivalence.ipynb | 18 ++++++++++-------- stix2/environment.py | 6 +++--- stix2/equivalence/graph/__init__.py | 5 +++-- stix2/equivalence/object/__init__.py | 5 +++-- stix2/equivalence/pattern/__init__.py | 2 +- 5 files changed, 20 insertions(+), 16 deletions(-) diff --git a/docs/guide/equivalence.ipynb b/docs/guide/equivalence.ipynb index c0b9331..8393495 100644 --- a/docs/guide/equivalence.ipynb +++ b/docs/guide/equivalence.ipynb @@ -2165,15 +2165,17 @@ "The weights dictionary should contain both the weight and the comparison function for each property. You may use the default weights and functions, or provide your own.\n", "\n", "##### Existing comparison functions\n", - "For reference, here is a list of the comparison functions already built in the codebase (found in [stix2/environment.py](../api/stix2.environment.rst#stix2.environment.Environment)):\n", + "For reference, here is a list of the comparison functions already built in the codebase (found in [stix2/equivalence/object](../api/equivalence/stix2.equivalence.object.rst#module-stix2.equivalence.object)):\n", "\n", - " - [custom_pattern_based](../api/stix2.environment.rst#stix2.environment.custom_pattern_based)\n", - " - [exact_match](../api/stix2.environment.rst#stix2.environment.exact_match)\n", - " - [partial_external_reference_based](../api/stix2.environment.rst#stix2.environment.partial_external_reference_based)\n", - " - [partial_list_based](../api/stix2.environment.rst#stix2.environment.partial_list_based)\n", - " - [partial_location_distance](../api/stix2.environment.rst#stix2.environment.partial_location_distance)\n", - " - [partial_string_based](../api/stix2.environment.rst#stix2.environment.partial_string_based)\n", - " - [partial_timestamp_based](../api/stix2.environment.rst#stix2.environment.partial_timestamp_based)\n", + " - [custom_pattern_based](../api/equivalence/stix2.equivalence.object.rst#stix2.equivalence.object.custom_pattern_based)\n", + " - [exact_match](../api/equivalence/stix2.equivalence.object.rst#stix2.equivalence.object.exact_match)\n", + " - [list_reference_check](../api/equivalence/stix2.equivalence.object.rst#stix2.equivalence.object.list_reference_check)\n", + " - [partial_external_reference_based](../api/equivalence/stix2.equivalence.object.rst#stix2.equivalence.object.partial_external_reference_based)\n", + " - [partial_list_based](../api/equivalence/stix2.equivalence.object.rst#stix2.equivalence.object.partial_list_based)\n", + " - [partial_location_distance](../api/equivalence/stix2.equivalence.object.rst#stix2.equivalence.object.partial_location_distance)\n", + " - [partial_string_based](../api/equivalence/stix2.equivalence.object.rst#stix2.equivalence.object.partial_string_based)\n", + " - [partial_timestamp_based](../api/equivalence/stix2.equivalence.object.rst#stix2.equivalence.object.partial_timestamp_based)\n", + " - [reference_check](../api/equivalence/stix2.equivalence.object.rst#stix2.equivalence.object.reference_check)\n", "\n", "For instance, if we wanted to compare two of the `ThreatActor`s from before, but use our own weights, then we could do the following:" ] diff --git a/stix2/environment.py b/stix2/environment.py index ea93a83..f31762c 100644 --- a/stix2/environment.py +++ b/stix2/environment.py @@ -4,7 +4,7 @@ import copy from .datastore import CompositeDataSource, DataStoreMixin from .equivalence.graph import graphically_equivalent from .equivalence.object import ( # noqa: F401 - check_property_present, custom_pattern_based, exact_match, + WEIGHTS, check_property_present, custom_pattern_based, exact_match, list_reference_check, partial_external_reference_based, partial_list_based, partial_location_distance, partial_string_based, partial_timestamp_based, reference_check, semantically_equivalent, @@ -222,7 +222,7 @@ class Environment(DataStoreMixin): Note: Default weights_dict: - .. include:: ../default_sem_eq_weights.rst + .. include:: ../object_default_sem_eq_weights.rst Note: This implementation follows the Semantic Equivalence Committee Note. @@ -260,7 +260,7 @@ class Environment(DataStoreMixin): Note: Default weights_dict: - .. include:: ../default_sem_eq_weights.rst + .. include:: ../graph_default_sem_eq_weights.rst Note: This implementation follows the Semantic Equivalence Committee Note. diff --git a/stix2/equivalence/graph/__init__.py b/stix2/equivalence/graph/__init__.py index 3c8730a..680f42f 100644 --- a/stix2/equivalence/graph/__init__.py +++ b/stix2/equivalence/graph/__init__.py @@ -1,3 +1,4 @@ +"""Python APIs for STIX 2 Graph-based Semantic Equivalence.""" import logging from ..object import ( @@ -36,7 +37,7 @@ def graphically_equivalent(ds1, ds2, prop_scores={}, **weight_dict): Note: Default weights_dict: - .. include:: ../default_sem_eq_weights.rst + .. include:: ../../graph_default_sem_eq_weights.rst Note: This implementation follows the Semantic Equivalence Committee Note. @@ -133,4 +134,4 @@ GRAPH_WEIGHTS.update({ "ds2": None, "max_depth": 1, }, -}) #: :autodoc-skip: +}) # :autodoc-skip: diff --git a/stix2/equivalence/object/__init__.py b/stix2/equivalence/object/__init__.py index c24fa3c..8333ceb 100644 --- a/stix2/equivalence/object/__init__.py +++ b/stix2/equivalence/object/__init__.py @@ -1,3 +1,4 @@ +"""Python APIs for STIX 2 Object-based Semantic Equivalence.""" import logging import time @@ -32,7 +33,7 @@ def semantically_equivalent(obj1, obj2, prop_scores={}, **weight_dict): Note: Default weights_dict: - .. include:: ../default_sem_eq_weights.rst + .. include:: ../../object_default_sem_eq_weights.rst Note: This implementation follows the Semantic Equivalence Committee Note. @@ -448,4 +449,4 @@ WEIGHTS = { "_internal": { "ignore_spec_version": False, }, -} #: :autodoc-skip: +} # :autodoc-skip: diff --git a/stix2/equivalence/pattern/__init__.py b/stix2/equivalence/pattern/__init__.py index 10494f7..b2e5421 100644 --- a/stix2/equivalence/pattern/__init__.py +++ b/stix2/equivalence/pattern/__init__.py @@ -1,7 +1,7 @@ """Python APIs for STIX 2 Pattern Semantic Equivalence. .. autosummary:: - :toctree: patterns + :toctree: pattern compare transform From bb3b1e141af13a3fce1654fc03b0e6e823878336 Mon Sep 17 00:00:00 2001 From: Emmanuelle Vargas-Gonzalez Date: Fri, 16 Oct 2020 17:36:20 -0400 Subject: [PATCH 5/6] add requirement to prevent breaking change to fail build --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 8a5e4a2..fa1773a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,6 @@ bumpversion ipython +nbconvert<6 nbsphinx==0.4.3 pre-commit pygments<3,>=2.4.1 From e08a26a39cab2839705875ed782bbbe327f752da Mon Sep 17 00:00:00 2001 From: Chris Lenk Date: Sun, 18 Oct 2020 21:09:07 -0400 Subject: [PATCH 6/6] Correct variable name --- stix2/environment.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stix2/environment.py b/stix2/environment.py index f31762c..4dc6ff0 100644 --- a/stix2/environment.py +++ b/stix2/environment.py @@ -220,7 +220,7 @@ class Environment(DataStoreMixin): or methods can be fine tuned for a particular use case. Note: - Default weights_dict: + Default weight_dict: .. include:: ../object_default_sem_eq_weights.rst @@ -258,7 +258,7 @@ class Environment(DataStoreMixin): or methods can be fine tuned for a particular use case. Note: - Default weights_dict: + Default weight_dict: .. include:: ../graph_default_sem_eq_weights.rst