25 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
| Overview
 | |
| ========
 | |
| 
 | |
| High level goals/principles of the python-stix2 library:
 | |
| 
 | |
| 1. It should be as easy as possible (but no easier!) to perform common tasks of
 | |
|    producing, consuming, and processing STIX 2 content.
 | |
| 2. It should be hard, if not impossible, to emit invalid STIX 2.
 | |
| 3. The library should default to doing "the right thing", complying with both
 | |
|    the STIX 2.0 spec, as well as associated best practices. The library should
 | |
|    make it hard to do "the wrong thing".
 | |
| 
 | |
| To accomplish these goals, and to incorporate lessons learned while developing
 | |
| python-stix (for STIX 1.x), several decisions influenced the design of
 | |
| python-stix2:
 | |
| 
 | |
| 1. All data structures are immutable by default. In contrast to python-stix,
 | |
|    where users would create an object and then assign attributes to it, in
 | |
|    python-stix2 all properties must be provided when creating the object.
 | |
| 2. Where necessary, library objects should act like ``dict``'s. When treated as
 | |
|    a ``str``, the JSON reprentation of the object should be used.
 | |
| 3. Core Python data types (including numeric types, ``datetime``) should be used
 | |
|    when appropriate, and serialized to the correct format in JSON as specified
 | |
|    in the STIX 2.0 spec.
 |