Commit Graph

1799 Commits (d7981dce9fa24372b5f8f93f89a59be7d704bb0f)

Author SHA1 Message Date
Emmanuelle Vargas-Gonzalez 7d99a9dab2 remove docs in wrong locations or directories 2020-10-16 16:40:25 -04:00
Emmanuelle Vargas-Gonzalez fb705c4885
Graph Equivalence (#449)
* new packages for graph and object-based semantic equivalence

* new method graphically_equivalent for Environment, move equivalence methods out

* object equivalence function, methods used for object-based moved here.

* new graph_equivalence methods

* add notes

* add support for versioning checks (default disabled)

* new tests to cover graph equivalence and new methods

* added more imports to environment.py to prevent breaking changes

* variable changes, new fields for checks, reset depth check per call

* flexibility when object is not available on graph.

* refactor debug logging message

* new file stix2.equivalence.graph_equivalence.rst and stix2.equivalence.object_equivalence.rst for docs

* API documentation for new modules

* additional text required to build docs

* add more test methods for list_semantic_check an graphically_equivalent/versioning

* add logging debug messages, code clean-up

* include individual scoring on results dict, fix issue on list_semantic_check not keeping highest score

* include results as summary in prop_scores, minor tweaks

* Update __init__.py

doctrings update

* apply feedback from pull request

- rename semantic_check to reference_check
- rename modules to graph and object respectively to eliminate redundancy
- remove created_by_ref and object_marking_refs from graph WEIGHTS and rebalance

* update docs/ entries

* add more checks, make max score based on actual objects checked instead of the full list, only create entry when type is present in WEIGHTS dictionary

update tests to reflect changes

* rename package patterns -> pattern

* documentation, moving weights around

* more documentation moving

* rename WEIGHTS variable for graph_equivalence
2020-10-16 11:35:26 -04:00
Chris Lenk d17d01d165
Merge pull request #444 from chisholm/comp_ds_unversioned_objs
Update CompositeDataSource and deduplicate() support for unversioned objects
2020-10-15 08:57:55 -04:00
Chris Lenk edfcb1641a
Merge pull request #460 from emmanvg/459-issue
TAXIICollectionSource custom object handling fix
2020-09-30 09:55:52 -04:00
Emmanuelle Vargas-Gonzalez 7b35b82996 TAXIICollectionSource custom object handling fix 2020-09-29 11:21:02 -04:00
Chris Lenk 3267036f33
Merge pull request #452 from oasis-open/api-reference-for-pattern-eq
Expose API Reference for Pattern Equivalence - ReadTheDocs
2020-09-18 13:52:02 -04:00
Chris Lenk ddb25c544a
Merge pull request #456 from chisholm/fix_comparison_expression_root_type
Fix object type tracking for AST comparison expression 'AND'
2020-09-18 09:59:53 -04:00
Chris Lenk 5a34d529a8
Merge pull request #454 from chisholm/fix_make_constant
Fix AST make_constant() function to create TimestampConstants
2020-09-16 09:23:15 -04:00
Michael Chisholm 7d64764ae3 Fix object type tracking for comparison expressions in the pattern
AST module.
2020-09-14 15:42:36 -04:00
Michael Chisholm bad42e5b78 pre-commit stylistic junk 2020-09-12 19:33:56 -04:00
Michael Chisholm ff35e8a01b Add some unit tests for the AST make_constant() function. 2020-09-12 19:14:29 -04:00
Michael Chisholm f2691e89f5 Fix make_constant() in the AST module, to always return a
constant.  It was failing to do so for timestamps, instead
returning a STIXdatetime object.
2020-09-12 19:14:29 -04:00
Emmanuelle Vargas-Gonzalez 639769d885 expose API Reference for Pattern Equivalence for ReadTheDocs 2020-09-11 13:54:13 -04:00
Chris Lenk 72a032c6e3
Merge pull request #451 from oasis-open/fix-read-the-docs
Fix for ReadTheDocs
2020-09-11 11:24:32 -04:00
Emmanuelle Vargas-Gonzalez 122c3694e4
Update requirements.txt 2020-09-11 11:15:38 -04:00
Emmanuelle Vargas-Gonzalez a7083c01dd add pygments in requirements.txt 2020-09-11 11:11:30 -04:00
Chris Lenk 18c6f49e5c
Merge pull request #445 from chisholm/pattern_equivalence
Pattern equivalence
2020-09-11 09:25:58 -04:00
Michael Chisholm b5015b74ba pre-commit stylistic fixes 2020-08-19 12:10:51 -04:00
Michael Chisholm 3c25410a9d pre-commit stylistic fix 2020-08-19 11:51:47 -04:00
Chris Lenk 18ee0d831e
Merge pull request #443 from chisholm/add_pattern_validator_version
Add a version restriction to the stix2-patterns dependency
2020-08-18 09:11:08 -04:00
Michael Chisholm 7fa3c78dea Update CompositeDataSource and deduplicate() to handle unversioned
objects, including 2.1 SCOs.  Updated some unit tests to test
this.  Fixed a typo in a 2.0 unit test (2.0 deduplicate() test).
2020-08-17 18:38:29 -04:00
Michael Chisholm 241d253a29 Add a version restriction to the stix2-patterns dependency, to
ensure users aren't tripped up by old versions.
2020-08-17 13:49:19 -04:00
Chris Lenk 7e0b75368d
Merge pull request #442 from oasis-open/emmanvg-patch-1
Version restriction for taxii2client dependency
2020-08-17 11:43:29 -04:00
Emmanuelle Vargas-Gonzalez 2d64bc86bb
Update setup.py
Add version restriction to ensure reasonably updated dependency
2020-08-17 10:49:07 -04:00
Michael Chisholm b6c2206491 Add some unit test suites for pattern equivalence which use some
STIX version-specific pattern features.
2020-08-14 19:56:49 -04:00
Michael Chisholm 9e707a3a81 Add stix_version kwargs to the pattern equivalence functions.
This allows the patterns to be parsed using either 2.0 or 2.1+
syntax.
2020-08-14 19:55:00 -04:00
Michael Chisholm 320129e26c Add another unit test to help a bit with lack of coverage of
compare/comparison.py.  This one tests patterns with more
constant types.
2020-08-13 18:45:52 -04:00
Michael Chisholm c21b230edb pre-commit hook stylistic changes 2020-08-13 17:44:42 -04:00
Michael Chisholm 16a8c544ac Add a find_equivalent_patterns() function and unit tests, in case
a user wants a more efficient search capability.  (It is more
efficient than calling equivalent_patterns() over and over in a
loop, because it doesn't repeatedly re-canonicalize the search
pattern.)
2020-08-13 17:09:04 -04:00
Michael Chisholm bd5635f5be Add some unit tests for pattern equivalence. 2020-08-13 16:46:25 -04:00
Michael Chisholm 6c92f670cb Fix ipv4/6 special canonicalizers to reformat IP addresses even
when a non-CIDR address is used.  Before, it left plain IP
addresses untouched.
2020-08-13 16:22:24 -04:00
Michael Chisholm 5d6c7d8c8a Add some simple context-sensitive constant canonicalization, used
as part of canonicalizing comparison expressions.  This
required adding a new comparison expression transformer callback
for leaf-node comparison expression objects, and updating all
existing comparison transformers to work (it affected all/most
of them).  The observation expression transformer which actually
does the comparison canonicalization was updated to also perform
this special canonicalization step.
2020-08-12 19:28:35 -04:00
Michael Chisholm 311fe38cea Add first cut of a pattern equivalence capability 2020-08-10 18:33:26 -04:00
Chris Lenk 1948b38eec
Merge pull request #438 from oasis-open/issue_437
hack for issue_435

Fixes #435.
2020-08-07 09:55:41 -04:00
Chris Lenk 1f9a844941
Merge pull request #439 from maybe-sybr/fix/customs-class-name
fix: Respect name of `@Custom*` decorated defs
2020-08-04 07:32:03 -04:00
Rich Piazza 8f76a84bbf handle quoted path components 2020-07-30 15:32:06 -04:00
maybe-sybr 15344527aa fix: Respect name of `@Custom*` decorated defs 2020-07-28 11:13:59 +10:00
Emmanuelle Vargas-Gonzalez 8cdbfed5e4
Merge pull request #431 from oasis-open/filesys-write-custom
Fix bug when adding custom object to FileSystemSink if the object type hasn't been registered
2020-07-27 09:43:38 -04:00
Rich Piazza b7a30befdc add tests and fix introduced bug 2020-07-25 14:47:40 -04:00
Rich Piazza 0fc2befd6a hack for issue_435 2020-07-25 14:22:03 -04:00
Chris Lenk bcd3eb3e4b
Merge pull request #436 from oasis-open/issue_435
handle mixed boolean expressions
2020-07-24 16:22:49 -04:00
Rich Piazza 084941dd41 handle mixed boolean expressions 2020-07-24 11:40:21 -04:00
Emmanuelle Vargas-Gonzalez 08137ff6be add serialization to API documentation 2020-07-22 15:38:17 -04:00
Emmanuelle Vargas-Gonzalez 8093898a3d move serialization-related methods to serialization.py
update tests that call specific methods from this area
2020-07-22 15:36:48 -04:00
Emmanuelle Vargas-Gonzalez ca56a74e12 update docstrings for _STIXBase method 2020-07-22 15:20:39 -04:00
Emmanuelle Vargas-Gonzalez 978aee9a8e fix circular import problem 2020-07-22 14:53:37 -04:00
Emmanuelle Vargas-Gonzalez c760e04c9a rename module to serialization.py 2020-07-22 14:31:26 -04:00
Emmanuelle Vargas-Gonzalez 853bd0da21 move classes and methods from base.py to serialize.py 2020-07-22 13:56:24 -04:00
Emmanuelle Vargas-Gonzalez 37f0238fc6 add serialize.py module 2020-07-22 13:37:41 -04:00
Emmanuelle Vargas-Gonzalez bb82beeec1
Merge pull request #430 from oasis-open/bundle-objs-and-lists
Allow mixing single objects and lists in bundle constructor
2020-07-22 13:00:22 -04:00