Michael Chisholm
0f2ce0ac72
Add unit tests for the is_*() utility type checking functions.
2021-01-20 16:59:38 -05:00
Michael Chisholm
51937232db
Fix to an import statement which was necessary due to the
...
circular import refactoring. I think I just forgot to include
this in the previous commit...
2021-01-20 16:59:38 -05:00
Michael Chisholm
fa6cff8a34
WIP adding is_sdo() et al functions to this library. On hold
...
while I address circular import problems.
2021-01-20 16:59:38 -05:00
Chris Lenk
a0d535336e
Merge 'master' and fix imports for consistency
2021-01-15 12:34:10 -05:00
Chris Lenk
7de5c458bb
Fix import sort order
2021-01-15 10:27:39 -05:00
Chris Lenk
a3f20dde7a
Use consistent import style in parsing.py
2021-01-15 10:27:23 -05:00
Emmanuelle Vargas-Gonzalez
983f931ecd
some missing fixes...
...
- for some reason they only showed up on PY38
2021-01-13 19:48:33 -05:00
Emmanuelle Vargas-Gonzalez
85c14d1502
all changes from add-trailing-commas v2.0.2
2021-01-13 17:52:15 -05:00
Emmanuelle Vargas-Gonzalez
acc90c2f4c
changes brought by isort and add-trailing-commas
2021-01-13 17:50:21 -05:00
Michael Chisholm
5d016142cf
Small tweaks: move the definition of DEFAULT_VERSION from the
...
top-level stix2 package to stix2.version but import it into
stix2. This makes it possible for someone to get the symbol
without needing to import all of stix2.
Change an "import X" style import to "from X import Y" in
stix2/__init__.py to be consistent with the other imports in
that file.
2021-01-13 11:22:34 -05:00
Michael Chisholm
f51e309775
Refactor stix2.parsing into more focused modules:
...
- stix2.registry, which contains the class mapping structure
and code for scanning stix2 modules for its initial population
- stix2.registration, which contains code used to register custom
STIX types with the registry
- stix2.parsing, which contains code for creating instances of
registered stix2 classes from raw dicts.
This is intended to reduce circular import problems, by giving
dependent code the ability to import a module which has exactly
the functionality it needs, without pulling a lot of other stuff
it doesn't need. Fewer imports means less chance of an import
cycle.
2021-01-08 22:08:33 -05:00
Chris Lenk
5bddf9321e
Bump version: 2.0.2 → 2.1.0
2020-11-20 17:37:58 -05:00
Chris Lenk
b55c3bb1df
Fix pattern equivalence doc style for consistency
2020-11-20 16:34:11 -05:00
Emmanuelle Vargas-Gonzalez
119364c889
Merge branch 'master' into 472-issue
2020-11-20 10:02:46 -05:00
Chris Lenk
a82dc5e813
Merge pull request #475 from oasis-open/equivalence-indicator-patterns
...
Use pattern equivalence in indicators
2020-11-20 09:56:35 -05:00
Chris Lenk
53f451b097
Use pattern equivalence in indicators
2020-11-20 09:33:56 -05:00
Emmanuelle Vargas-Gonzalez
e7242c9ae6
forgot one...
2020-11-19 08:48:57 -05:00
Emmanuelle Vargas-Gonzalez
49985cc51d
fix ordering problem with Class definitions
2020-11-18 19:01:12 -05:00
Emmanuelle Vargas-Gonzalez
c9bafaf5ae
fix typo for Class X509V3ExtensionsType
2020-11-18 18:08:57 -05:00
Michael Chisholm
169ef87bc2
pre-commit stylistic fixes
2020-11-16 15:10:06 -05:00
Michael Chisholm
f5bbbe7a3b
Fix bug with reference type enforcement on property
...
where_sighted_refs on Sighting.
2020-11-16 15:04:24 -05:00
Chris Lenk
a751df32c6
Fix Location semantic equivalence check for Location objects without the latitude and longitude properties ( #467 )
...
* Fix Location semantic equivalence check for Location objects without the latitude and longitude properties.
Uses contribution from @zrush-mitre (#464 ).
Fixes #462 .
* Remove a line
2020-11-10 12:55:17 -05:00
Chris Lenk
e08a26a39c
Correct variable name
2020-10-18 21:09:07 -04:00
Emmanuelle Vargas-Gonzalez
92ab1227ed
docstrings, changes to equivalence.ipynb
2020-10-16 17:12:52 -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
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
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
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
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
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
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
Chris Lenk
806389117f
Allow mixing single objects and lists in bundles
...
...in bundle constructor
Related: #429 .
2020-07-20 00:24:36 -04:00
Chris Lenk
55ea84ece2
Fix bug when adding custom obj to FileSystemSink
...
... if the object type hasn't been registered.
Related: #439 .
2020-07-20 00:04:32 -04:00
Michael Chisholm
d888eb60e2
Remove protocol_family and its uses from the v21 network
...
socket SCO extension. It's a 2.0 property that got copied into
the 2.1 code by mistake.
2020-07-08 14:26:02 -04:00
Emmanuelle Vargas-Gonzalez
bf66744db3
remove round from `fuzz.token_sort_ratio(str1, str2)` call
2020-07-08 11:02:56 -04:00
Chris Lenk
457085a115
Merge pull request #377 from maxbachmann-forks/master
...
use rapidfuzz instead of fuzzywuzzy
2020-07-08 10:49:41 -04:00
Chris Lenk
f1bb0b1b01
Bump version: 2.0.1 → 2.0.2
2020-07-07 09:42:01 -04:00
Chris Lenk
b29527cae1
Fix for isort v5.0.0
2020-07-07 09:03:07 -04:00
Chris Lenk
ee3425cc01
Bump version: 2.0.0 → 2.0.1
2020-07-06 16:44:29 -04:00
Chris Lenk
c8a9d31d7b
Bump version: 1.4.0 → 2.0.0
2020-07-06 16:43:12 -04:00
Chris Lenk
8e785cbd05
Remove outdated comment
2020-07-06 16:42:33 -04:00
Emmanuelle Vargas-Gonzalez
c3e5da4634
add `pattern_visitor` to api reference
2020-07-01 10:30:05 -04:00
Emmanuelle Vargas-Gonzalez
2ac3a4b524
add module docstring for versioning.py
2020-07-01 10:30:05 -04:00
Chris Lenk
53dbc5835e
Add test for coverage
...
Tests creating a property with both required and default.
2020-07-01 09:54:50 -04:00
Chris Lenk
3397805367
Consolidate version-independent property tests
2020-07-01 09:41:10 -04:00
Emmanuelle Vargas-Gonzalez
7ef3a02971
update docstrings environment.py and parsing.py
2020-06-30 22:32:04 -04:00
Emmanuelle Vargas-Gonzalez
21e109d881
remove `core` and added `parsing`, `versioning` to autosummary
2020-06-30 22:16:15 -04:00
Emmanuelle Vargas-Gonzalez
9a0cb02ab3
nit-pick on v21 Indicator constructor
2020-06-30 13:58:19 -04:00
Chris Lenk
e25734d2b6
Fix trailing commas
2020-06-26 16:43:19 -04:00
Chris Lenk
d5d664ba41
Update docs for 2.1 as default
2020-06-26 16:43:19 -04:00
Chris Lenk
10bdfe9e25
Fix KeyError in TAXII DataStore
2020-06-26 16:43:19 -04:00
Chris Lenk
3ef63d5e17
Update Workbench for 2.1
2020-06-26 16:43:19 -04:00
Chris Lenk
d62f5ee141
Remove 'encoding' param from json.loads
...
It's ignored since Python 3.1 and we've dropped 2.7.
2020-06-26 16:43:19 -04:00
Chris Lenk
e80d3bad2c
Fix 2.0 HashesProperties
2020-06-26 16:43:19 -04:00
Chris Lenk
f78b396648
Fix parsing tests
2020-06-26 16:43:19 -04:00
Chris Lenk
b42b1cafa7
Move a couple tests for organization
2020-06-26 16:43:19 -04:00
Chris Lenk
b2ee33208f
Set STIX 2.1 as default, fix indicator.valid_from
2020-06-26 16:43:19 -04:00
Michael Chisholm
bf5176f370
Add some new unit tests corresponding to ListProperty revamp.
2020-06-17 16:31:03 -04:00
Michael Chisholm
bc51cd47bd
Revamp ListProperty so its logic makes more sense.
2020-06-17 16:11:30 -04:00
Chris Lenk
9d05c9d3e2
Merge pull request #401 from chisholm/fix_versionable_detection
...
Fix versionability detection
2020-06-10 10:22:59 -04:00
Michael Chisholm
00b78e7a47
Stylistic pre-commit junk
2020-06-08 17:51:13 -04:00
Michael Chisholm
99bf4215a3
Change all uses of ObjectReferenceProperty in 2.1 SCO classes
...
to ReferenceProperty. Add a unit test to ensure that when a
stix2 object is passed as a value of a ReferenceProperty, that
the ID is properly pulled out and used as the actual property
value, and that it doesn't affect the deterministic ID
calculation.
2020-06-08 17:24:33 -04:00
Chris Lenk
8bde22fa1f
Merge pull request #407 from emmanvg/flexibility-selector-syntax
...
Update SELECTOR_REGEX for GranularMarkings
2020-06-08 13:54:39 -04:00
Emmanuelle Vargas-Gonzalez
aa18575c83
add `id` as special-case option in regex. closes #406
2020-06-08 09:27:12 -04:00
Michael Chisholm
c13cb182db
versioning related updates:
...
- remove var 'properties_to_change' since it's unnecessary
- delete most of remove_custom_stix() since it was unnecessary,
greatly simplify it
2020-06-05 14:24:16 -04:00
Michael Chisholm
9c5f950d5b
Add a new_version() restriction preventing SCO ID contributing
...
properties from being changed, if a UUIDv5 is in use. Changing
one of those properties would imply an ID change, which is not
allowed across versions. Also:
- add a trailing comma
- change unchangable_properties to a set instead of a list,
in case there are dupe props between STIX_UNMOD_PROPERTIES and
sco_locked_props
2020-06-05 14:24:16 -04:00
Michael Chisholm
eaa7f17ee4
Fix versionability detection: _properties is an OrderedDict not
...
a list of tuples! (despite what it looks like if you glance at it
quickly.)
2020-06-05 14:24:16 -04:00
Michael Chisholm
15e75cb4de
Python 2 compatibility fix in versionability detection. In
...
python2, Mapping.keys() returns a list instead of a set!
2020-06-05 14:24:16 -04:00
Michael Chisholm
a05dbc42d5
Improve the docstring for new_version(). Especially with the
...
three-value logic for allow_custom, it needed some much better
documentation.
2020-06-05 14:24:16 -04:00
Michael Chisholm
d4cecd6f51
In remove_custom_stix(), when creating the new version,
...
use allow_custom=False to force custom properties to be
disallowed. This is extra insurance against a custom prop
accidentally getting through.
2020-06-05 14:24:16 -04:00