Commit Graph

1352 Commits (2cda97cf5e51403c43a96ceb9073afab7706638a)

Author SHA1 Message Date
Emmanuelle Vargas-Gonzalez 2ea9c0c63c use it on filesystem.py data sink 2021-03-17 15:15:26 -04:00
Emmanuelle Vargas-Gonzalez 827f622c04 provide ability to stream STIX output to fp ``.write()`` file-like object 2021-03-17 15:01:49 -04:00
Chris Lenk 69cd079cc2
Merge pull request #499 from oasis-open/emmanvg-patch-1
Update incident weights for semantic similarity
2021-03-15 09:35:21 -04:00
Chris Lenk ccf3b1a0fc
Merge pull request #480 from emmanvg/479-pagination-taxii-datastore
Support Pagination in TAXII DataStore
2021-03-15 09:33:42 -04:00
Emmanuelle Vargas-Gonzalez f7ebd34c8c
Update __init__.py
fix incident entry
2021-03-12 16:49:23 -05:00
Emmanuelle Vargas-Gonzalez 7e5d31742c remove `six` from tests 2021-03-12 16:46:34 -05:00
Emmanuelle Vargas-Gonzalez c9e66def60 rename test, update the rest of the docstrings for object_similarity() and object_equivalence() 2021-03-10 13:32:02 -05:00
Emmanuelle Vargas-Gonzalez 7d7c56c64b
Update stix2/environment.py 2021-03-10 09:52:24 -05:00
Emmanuelle Vargas-Gonzalez 262284444e
Update stix2/environment.py
Co-authored-by: Chris Lenk <clenk@users.noreply.github.com>
2021-03-10 09:52:15 -05:00
Emmanuelle Vargas-Gonzalez fb6852b38f update test suite 2021-03-01 20:47:30 -05:00
Emmanuelle Vargas-Gonzalez bd996b8750
Update __init__.py 2021-03-01 14:40:05 -05:00
Emmanuelle Vargas-Gonzalez 72a12e96ba update guide example, conf.py and remove some unused imports 2021-03-01 13:14:03 -05:00
Emmanuelle Vargas-Gonzalez e4e6f46089 change key name for _refs check 2021-03-01 12:54:01 -05:00
Emmanuelle Vargas-Gonzalez 3efa4c1ce9 revert part changes 2021-03-01 12:44:35 -05:00
Emmanuelle Vargas-Gonzalez d2e867b52e docstring corrections 2021-03-01 12:29:33 -05:00
Emmanuelle Vargas-Gonzalez ff5014c606 expose configuration options, combine weight dictionary, update tests 2021-03-01 12:27:52 -05:00
Emmanuelle Vargas-Gonzalez f9a52eeed3 WIP: changes to both similarity functions, expose settings 2021-02-26 19:19:33 -05:00
Emmanuelle Vargas-Gonzalez b3d0c7b58a styling changes 2021-02-20 00:13:36 -05:00
Emmanuelle Vargas-Gonzalez e4039231f4 missing link and test case 2021-02-20 00:10:38 -05:00
Emmanuelle Vargas-Gonzalez d5e6226c82 update hyperlinks to STIX 2.1 CS 02 2021-02-19 23:27:41 -05:00
Emmanuelle Vargas-Gonzalez 479cff818a few leftover changes... 2021-02-19 22:15:11 -05:00
Emmanuelle Vargas-Gonzalez 9043a9dc8e Merge branch 'master' of github.com:oasis-open/cti-python-stix2 into dev-extensions-proposal 2021-02-19 21:54:46 -05:00
Emmanuelle Vargas-Gonzalez 5067a3ff76 couple of changes after merging against master 2021-02-19 10:05:56 -05:00
Chris Lenk 4bccfd26bd
Merge pull request #492 from oasis-open/drop-six
Drop 'six' dependency (backwards breaking)
2021-02-18 23:45:13 -05:00
Chris Lenk 64608e7bea
Merge pull request #491 from emmanvg/graph-eq-changes
Graph Equivalence Changes
2021-02-18 23:44:39 -05:00
Emmanuelle Vargas-Gonzalez a8b6fa2100 Merge branch 'master' of github.com:oasis-open/cti-python-stix2 into dev-extensions-proposal 2021-02-18 16:04:30 -05:00
Chris Lenk b4a0a9ea10 Remove six dependency (backwards breaking)
We've already removed Python 2 from our test harness, but this removes
all python 2 compatibility code left in.
2021-02-18 12:38:35 -05:00
Chris Lenk 490251dd85 Revert JSON canonicalization code
Undo our Python 2 compatibility fixes
2021-02-18 12:21:52 -05:00
Emmanuelle Vargas-Gonzalez 99453770cf doctring changes, _versioned_checks changes 2021-02-18 10:37:34 -05:00
Emmanuelle Vargas-Gonzalez fa6978969b removing unused imports (backwards breaking) 2021-02-18 10:20:42 -05:00
Emmanuelle Vargas-Gonzalez 010593345c
Update stix2/environment.py
docstrings

Co-authored-by: Chris Lenk <clenk@users.noreply.github.com>
2021-02-18 09:16:19 -05:00
Emmanuelle Vargas-Gonzalez 75b411df85
Update stix2/environment.py
docstrings

Co-authored-by: Chris Lenk <clenk@users.noreply.github.com>
2021-02-18 09:15:26 -05:00
Emmanuelle Vargas-Gonzalez 75574c9427
Update stix2/equivalence/object/__init__.py
docstrings

Co-authored-by: Chris Lenk <clenk@users.noreply.github.com>
2021-02-18 09:15:09 -05:00
Emmanuelle Vargas-Gonzalez 34feac6ae7
Update stix2/environment.py
Co-authored-by: Chris Lenk <clenk@users.noreply.github.com>
2021-02-18 09:14:47 -05:00
Emmanuelle Vargas-Gonzalez 154fc4e236
Update stix2/equivalence/object/__init__.py
update variable names

Co-authored-by: Chris Lenk <clenk@users.noreply.github.com>
2021-02-18 09:14:34 -05:00
Emmanuelle Vargas-Gonzalez 52c5f3ad29
Update stix2/equivalence/object/__init__.py
Co-authored-by: Chris Lenk <clenk@users.noreply.github.com>
2021-02-18 09:14:10 -05:00
Emmanuelle Vargas-Gonzalez 702c80bd53 add styling changes 2021-02-17 21:47:56 -05:00
Emmanuelle Vargas-Gonzalez ee63e9faf4 resolve issue regarding reference_check or list_reference_check, remove redundant object_similarity call
update test suite
2021-02-17 21:30:14 -05:00
Emmanuelle Vargas-Gonzalez c656d35da5 add more test coverage for new functions 2021-02-16 13:40:42 -05:00
Emmanuelle Vargas-Gonzalez d2d85badb2 make some functions internal, add some docs for them 2021-02-16 11:01:07 -05:00
Emmanuelle Vargas-Gonzalez 09fd8c060b clear debug message 2021-02-16 10:23:02 -05:00
Emmanuelle Vargas-Gonzalez fbea229004 add styling changes 2021-02-16 09:44:03 -05:00
Emmanuelle Vargas-Gonzalez ef610ec8d3 small docstring fix 2021-02-16 09:36:09 -05:00
Emmanuelle Vargas-Gonzalez f966c64b40 update test suite for environments 2021-02-16 01:05:46 -05:00
Emmanuelle Vargas-Gonzalez 690a515f00 add methods to environment.py 2021-02-16 00:58:33 -05:00
Emmanuelle Vargas-Gonzalez 02b076b3bb resolve issues with graph similarity
- new methods for graph equivalence and similarity
- remove sorting and len comparisons
- rename some variables
2021-02-16 00:57:26 -05:00
Michael Chisholm 745696cba1 Remove "canonical" from a couple more places in docstrings which
I missed.
2021-02-14 19:25:59 -05:00
Michael Chisholm ccaa8b62ae pre-commit stylistic fix 2021-02-11 19:35:28 -05:00
Michael Chisholm 631460f45f Rename various symbols and change various comments to refer to
normalization instead of canonicalization.
2021-02-11 19:33:57 -05:00
Chris Lenk e513081100
Merge pull request #458 from chisholm/versioning_refinements
Versioning refinements
2021-02-06 22:59:18 -05:00
Chris Lenk 5971129b7c
Avoid potential KeyError in _is_versionable_type() 2021-02-05 17:42:04 -05:00
Michael Chisholm 5a210192bd pre-commit stylistic fix 2021-02-04 17:33:25 -05:00
Michael Chisholm 9e9a61c71c Fix bug with observation expression DNF transformer, where it was
not preserving operand order when distributing FOLLOWEDBY.
2021-02-04 16:45:39 -05:00
Emmanuelle Vargas-Gonzalez 30fd8c3464 compact calls 2021-02-02 00:08:11 -05:00
Emmanuelle Vargas-Gonzalez a7eb4113de minor change to align API 2021-02-02 00:04:04 -05:00
Emmanuelle Vargas-Gonzalez 489970718f WIP: changes to graph_similarity
busted main loop, symmetrical properties not present
2021-02-01 22:35:37 -05:00
Chris Lenk bfc47e73f5
Merge pull request #485 from oasis-open/emmanvg-patch-1
Update CustomObservale decorator
2021-01-29 09:52:00 -05:00
Michael Chisholm 624d71ed53 pre-commit stylistic fixes 2021-01-28 23:02:23 -05:00
Michael Chisholm 0dd6462d60 Add some unit tests which try to version marking-definitions. 2021-01-28 23:02:23 -05:00
Michael Chisholm a97645abc3 Add some missing docstrings on a few exception classes. 2021-01-28 23:02:23 -05:00
Michael Chisholm c74d06aadc Improve versioning.new_version() to better handle custom objects
and dicts, and add better raised exception types if versioning
couldn't be done.  I changed workbench monkeypatching a bit, to
copy some class attributes over to the workbench wrapper
class-like callables, since some code expected those attributes
to be there (e.g. the versioning code).
2021-01-28 23:02:23 -05:00
Chris Lenk 3878788da4
Update is_sro docstring 2021-01-28 22:54:52 -05:00
Michael Chisholm 98b0b2ed41 pre-commit stylistic fix 2021-01-28 19:32:27 -05:00
Michael Chisholm 83abf78af5 Remove old compatibility code regarding importing the old
stix2.core module.
2021-01-28 19:21:57 -05:00
Michael Chisholm eead72aabc Fix docstring typo in is_marking(). Made a minor docstring
update to is_sro() as well, so it doesn't talk as if you can
register custom SROs.  That didn't actually make sense.
2021-01-27 22:25:41 -05:00
Emmanuelle Vargas-Gonzalez 77d20c787a
Update observables.py
Add missing common properties in decorator closes #484
2021-01-27 11:31:14 -05:00
Emmanuelle Vargas-Gonzalez a62dfbb41b missing common properties on CustomObservable decorator 2021-01-26 22:17:03 -05:00
Michael Chisholm f9b9e0d2d7 pre-commit stylistic fixes 2021-01-20 20:59:10 -05:00
Michael Chisholm 404fcd04ca Remove some ugly python2 compatibilty code from stix2.versioning
module, since we no longer support python2.
2021-01-20 20:58:13 -05:00
Michael Chisholm 38067a6ec7 pre-commit stylistic fixes 2021-01-20 20:49:01 -05:00
Michael Chisholm 92a478b39b A minor revision to stix2.versioning: it's silly to look up a
class in the registry when you have an instance of one of those
classes.  Because in that case, you can just get the class of the
instance and not deal with the registry at all.
2021-01-20 19:42:06 -05:00
Michael Chisholm 5aadf1ae91 Add some unit tests for attempting to change ID contributing
properties of a 2.1 SCO with UUIDv5 ID, when creating a new
version.
2021-01-20 19:16:22 -05:00
Michael Chisholm 473e7d0068 Change versioning module to use some of the is_* utility
functions.  Changed some ">= 2.1" stix version semantics to be
"== 2.1", because we don't have any version >= 2.1, so they are
currently equivalent, and the is_*() functions don't support
STIX version ranges.  They only support exact versions.  We can
look at this again if a newer STIX version ever emerges.

Also added a class_for_type() function to the registry module,
which was useful for the versioning module changes described
above.  I thought that function would be helpful in the parsing
module, to simplify code there, so I changed that module a bit
to use it.
2021-01-20 16:59:39 -05:00
Michael Chisholm fe2330af07 Improve is_sdo() et al utility functions with respect to
dict/mapping values: do a simple verification of the value's
STIX version, not just its type.  Added a lot more unit tests to
test behavior on dicts.  To make the implementation work, I had
to move the detect_spec_version() function out of the parsing
module and into utils.  So that required small changes at all
its previous call sites.
2021-01-20 16:59:39 -05:00
Michael Chisholm f8c86f7352 Fixups after a rebase. There were several conflict resolutions
and I probably forgot some stuff...
2021-01-20 16:59:39 -05:00
Michael Chisholm bf284d0a0b Fix silly docstring copy-paste typo 2021-01-20 16:59:39 -05:00
Michael Chisholm db1d0b736b Remove registry.get_stix2_class_maps(), since now that the
class map structure is keyed by normal "X.Y" style versions,
the convenience that function provided is no longer necessary.
So it no longer makes sense to have the function (at least,
not for that reason).  Change users of that function to use
the STIX2_OBJ_MAPS structure directly.
2021-01-20 16:59:39 -05:00
Michael Chisholm f88fba6751 Change the stix2 class map structure to be keyed at the top
level with STIX versions in the same format as is used everywhere
else in the API: "X.Y", as opposed to the "vXY" format used by
the version-specific python packages.  This eliminates all of
the awkward conversion from public API format to "vXX" format.

Also a little bit of code rearranging in the registration module
to ensure that some STIX 2.1-specific checks are done whether
version 2.1 is given explicitly or is defaulted to.

In the same module I also added a missing import of
stix2.properties, since my IDE was claiming it could not find a
function from that module.
2021-01-20 16:59:38 -05:00
Michael Chisholm 188f704b28 Remove a "this needs to be moved into the stix2 library" comment,
since this *is* in the stix2 library!
2021-01-20 16:59:38 -05:00
Michael Chisholm 24307626b0 Move get_stix2_class_maps() from .utils to .registry (since it's
really just a simple accessor into the class maps table), and
change other code to use it, in places where it was simple and
made sense.
2021-01-20 16:59:38 -05:00
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
Emmanuelle Vargas-Gonzalez a48af17cf9 styling fixes 2021-01-15 16:05:57 -05:00
Emmanuelle Vargas-Gonzalez 367b485fcd write some tests to check new MarkingDefinition constraints 2021-01-15 16:01:36 -05:00
Emmanuelle Vargas-Gonzalez b696f14560 add content for basic incident testing 2021-01-15 15:13:30 -05:00
Emmanuelle Vargas-Gonzalez be0ebbad65 add test_incident.py 2021-01-15 13:53:43 -05:00
Emmanuelle Vargas-Gonzalez 82390ba648 Merge branch 'master' of github.com:oasis-open/cti-python-stix2 into dev-extensions-proposal 2021-01-15 13:01:30 -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
Emmanuelle Vargas-Gonzalez a86b21dbf7 add checks for MarkingDefinition requirements 2020-12-23 16:15:31 -05:00
Emmanuelle Vargas-Gonzalez 6a6f13c37b rename the Class auto-naming from 'STIXExtension' to 'ExtensionDefinition' 2020-12-23 16:07:30 -05:00
Emmanuelle Vargas-Gonzalez a3fce3686a Merge branch 'master' of github.com:oasis-open/cti-python-stix2 into dev-extensions-proposal 2020-12-23 15:08:10 -05:00
Emmanuelle Vargas-Gonzalez ef2ef95c3a `stix-extension` to `extension-definition` 2020-12-22 21:59:18 -05:00