Skip to content

Commit

Permalink
Use Entity and EntityList directly from mixbox.
Browse files Browse the repository at this point in the history
  • Loading branch information
gtback committed Jun 19, 2015
1 parent 93934e6 commit 0197861
Show file tree
Hide file tree
Showing 76 changed files with 356 additions and 350 deletions.
6 changes: 2 additions & 4 deletions cybox/__init__.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
# Copyright (c) 2015, The MITRE Corporation. All rights reserved.
# See LICENSE.txt for complete terms.

# TODO: Remove! Imports should come directly from mixbox.
from mixbox.entities import Entity, EntityList # noqa

from mixbox import entities
from mixbox.vendor import six

from .version import __version__ # noqa


#TODO: Should this get moved to mixbox or not?
class Unicode(Entity):
class Unicode(entities.Entity):
"""Shim class to allow xs:string's in EntityList"""

def __init__(self, value):
Expand Down
6 changes: 3 additions & 3 deletions cybox/common/byterun.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Copyright (c) 2015, The MITRE Corporation. All rights reserved.
# See LICENSE.txt for complete terms.

from mixbox import entities
from mixbox import fields

import cybox
import cybox.bindings.cybox_common as common_binding
from cybox.common import HashList, Integer, String


class ByteRun(cybox.Entity):
class ByteRun(entities.Entity):
_binding = common_binding
_binding_class = common_binding.ByteRunType
_namespace = 'http://cybox.mitre.org/common-2'
Expand All @@ -22,7 +22,7 @@ class ByteRun(cybox.Entity):
byte_run_data = fields.TypedField("Byte_Run_Data")


class ByteRuns(cybox.EntityList):
class ByteRuns(entities.EntityList):
_binding_class = common_binding.ByteRunsType
_binding_var = "Byte_Run"
_contained_type = ByteRun
Expand Down
6 changes: 3 additions & 3 deletions cybox/common/contributor.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Copyright (c) 2015, The MITRE Corporation. All rights reserved.
# See LICENSE.txt for complete terms.

from mixbox import entities
from mixbox import fields

import cybox
import cybox.bindings.cybox_common as common_binding
from cybox.common import DateRange


class Contributor(cybox.Entity):
class Contributor(entities.Entity):
_binding = common_binding
_binding_class = common_binding.ContributorType
_namespace = 'http://cybox.mitre.org/common-2'
Expand All @@ -22,7 +22,7 @@ class Contributor(cybox.Entity):
contribution_location = fields.TypedField("Contribution_Location")


class Personnel(cybox.EntityList):
class Personnel(entities.EntityList):
_binding_class = common_binding.PersonnelType
_binding_var = "Contributor"
_contained_type = Contributor
Expand Down
4 changes: 2 additions & 2 deletions cybox/common/data_segment.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Copyright (c) 2015, The MITRE Corporation. All rights reserved.
# See LICENSE.txt for complete terms.

from mixbox import entities
from mixbox import fields

import cybox
import cybox.bindings.cybox_common as common_binding
from cybox.common import Integer, String

Expand Down Expand Up @@ -55,7 +55,7 @@ def from_dict(datasize_dict):
return datasize


class DataSegment(cybox.Entity):
class DataSegment(entities.Entity):
_binding = common_binding
_binding_class = common_binding.DataSegmentType
_namespace = 'http://cybox.mitre.org/common-2'
Expand Down
4 changes: 2 additions & 2 deletions cybox/common/daterange.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Copyright (c) 2015, The MITRE Corporation. All rights reserved.
# See LICENSE.txt for complete terms.

from mixbox import entities
from mixbox import fields

import cybox
import cybox.bindings.cybox_common as common_binding
from cybox.common import DateWithPrecision


class DateRange(cybox.Entity):
class DateRange(entities.Entity):
_binding = common_binding
_binding_class = common_binding.DateRangeType
_namespace = 'http://cybox.mitre.org/common-2'
Expand Down
17 changes: 12 additions & 5 deletions cybox/common/datetimewithprecision.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
# Copyright (c) 2015, The MITRE Corporation. All rights reserved.
# See LICENSE.txt for complete terms.
import cybox
import cybox.bindings.cybox_common as common_binding
import dateutil

from datetime import datetime

import dateutil

from mixbox import entities

import cybox.bindings.cybox_common as common_binding

DATE_PRECISION_VALUES = ("year", "month", "day")
TIME_PRECISION_VALUES = ("hour", "minute", "second")
DATETIME_PRECISION_VALUES = DATE_PRECISION_VALUES + TIME_PRECISION_VALUES
Expand All @@ -16,12 +20,14 @@ def parse_value(value):
return value
return dateutil.parser.parse(value)


def serialize_value(value):
if not value:
return None
return value.isoformat()

class DateTimeWithPrecision(cybox.Entity):

class DateTimeWithPrecision(entities.Entity):
_binding = common_binding
_binding_class = common_binding.DateTimeWithPrecisionType
_namespace = 'http://cybox.mitre.org/common-2'
Expand Down Expand Up @@ -93,7 +99,8 @@ def from_dict(cls, dict_):

return return_obj

class DateWithPrecision(cybox.Entity):

class DateWithPrecision(entities.Entity):
_binding = common_binding
_binding_class = common_binding.DateWithPrecisionType
_namespace = 'http://cybox.mitre.org/common-2'
Expand Down
6 changes: 3 additions & 3 deletions cybox/common/digitalsignature.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Copyright (c) 2015, The MITRE Corporation. All rights reserved.
# See LICENSE.txt for complete terms.

from mixbox import entities
from mixbox import fields

import cybox
import cybox.bindings.cybox_common as common_binding
from cybox.common import String


class DigitalSignature(cybox.Entity):
class DigitalSignature(entities.Entity):
_binding = common_binding
_binding_class = common_binding.DigitalSignatureInfoType
_namespace = 'http://cybox.mitre.org/common-2'
Expand All @@ -20,7 +20,7 @@ class DigitalSignature(cybox.Entity):
signature_description = fields.TypedField("Signature_Description", String)


class DigitalSignatureList(cybox.EntityList):
class DigitalSignatureList(entities.EntityList):
_binding = common_binding
_binding_class = common_binding.DigitalSignaturesType
_binding_var = "Digital_Signature"
Expand Down
7 changes: 4 additions & 3 deletions cybox/common/environment_variable.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
# Copyright (c) 2015, The MITRE Corporation. All rights reserved.
# See LICENSE.txt for complete terms.

import cybox
from mixbox import entities

import cybox.bindings.cybox_common as common_binding
from cybox.common import String


class EnvironmentVariable(cybox.Entity):
class EnvironmentVariable(entities.Entity):
_namespace = 'http://cybox.mitre.org/common-2'

def __init__(self):
Expand Down Expand Up @@ -55,7 +56,7 @@ def from_obj(environment_variable_obj):
return environment_variable_


class EnvironmentVariableList(cybox.EntityList):
class EnvironmentVariableList(entities.EntityList):
_binding_class = common_binding.EnvironmentVariableListType
_binding_var = "Environment_Variable"
_contained_type = EnvironmentVariable
Expand Down
10 changes: 5 additions & 5 deletions cybox/common/extracted_features.py
Original file line number Diff line number Diff line change
@@ -1,38 +1,38 @@
# Copyright (c) 2015, The MITRE Corporation. All rights reserved.
# See LICENSE.txt for complete terms.

from mixbox import entities
from mixbox import fields

import cybox
import cybox.bindings.cybox_common as common_binding
from cybox.common import ExtractedStrings, ObjectProperties, String


class Imports(cybox.EntityList):
class Imports(entities.EntityList):
_binding = common_binding
_binding_class = common_binding.ImportsType
_binding_var = "Import"
_contained_type = String
_namespace = 'http://cybox.mitre.org/common-2'


class Functions(cybox.EntityList):
class Functions(entities.EntityList):
_binding = common_binding
_binding_class = common_binding.FunctionsType
_binding_var = "Function"
_contained_type = String
_namespace = 'http://cybox.mitre.org/common-2'


class CodeSnippets(cybox.EntityList):
class CodeSnippets(entities.EntityList):
_binding = common_binding
_binding_class = common_binding.CodeSnippetsType
_binding_var = "Code_Snippet"
_contained_type = ObjectProperties
_namespace = 'http://cybox.mitre.org/common-2'


class ExtractedFeatures(cybox.Entity):
class ExtractedFeatures(entities.Entity):
_binding = common_binding
_binding_class = common_binding.ExtractedFeaturesType
_namespace = 'http://cybox.mitre.org/common-2'
Expand Down
6 changes: 3 additions & 3 deletions cybox/common/extracted_string.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
# Copyright (c) 2015, The MITRE Corporation. All rights reserved.
# See LICENSE.txt for complete terms.

from mixbox import entities
from mixbox import fields

import cybox
import cybox.bindings.cybox_common as common_binding
from cybox.common import (
vocabs, String, HexBinary, PositiveInteger, HashList
)
from cybox.common.vocabs import CharacterEncoding


class ExtractedString(cybox.Entity):
class ExtractedString(entities.Entity):
_binding = common_binding
_binding_class = common_binding.ExtractedStringType
_namespace = 'http://cybox.mitre.org/common-2'
Expand All @@ -30,7 +30,7 @@ def __init__(self, string_value=None):
self.string_value = string_value


class ExtractedStrings(cybox.EntityList):
class ExtractedStrings(entities.EntityList):
_binding_class = common_binding.ExtractedStringsType
_binding_var = "String"
_contained_type = ExtractedString
Expand Down
6 changes: 3 additions & 3 deletions cybox/common/hashes.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
# Copyright (c) 2015, The MITRE Corporation. All rights reserved.
# See LICENSE.txt for complete terms.

from mixbox import entities
from mixbox import fields
from mixbox.vendor import six
from mixbox.vendor.six import u

import cybox
import cybox.bindings.cybox_common as common_binding
from cybox.common import vocabs, HexBinary, String, VocabString
from cybox.common.vocabs import HashName


class Hash(cybox.Entity):
class Hash(entities.Entity):
_binding = common_binding
_binding_class = common_binding.HashType
_namespace = 'http://cybox.mitre.org/common-2'
Expand Down Expand Up @@ -123,7 +123,7 @@ def __str__(self):
# return hash


class HashList(cybox.EntityList):
class HashList(entities.EntityList):
_binding = common_binding
_binding_class = common_binding.HashListType
_binding_var = "Hash"
Expand Down
4 changes: 2 additions & 2 deletions cybox/common/measuresource.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
# Copyright (c) 2015, The MITRE Corporation. All rights reserved.
# See LICENSE.txt for complete terms.

from mixbox import entities
from mixbox import fields

import cybox
import cybox.bindings.cybox_common as common_binding
from cybox.common import (vocabs, ObjectProperties, Personnel,
PlatformSpecification, StructuredText, Time, ToolInformationList,
ToolType)
from cybox.common.vocabs import InformationSourceType


class MeasureSource(cybox.Entity):
class MeasureSource(entities.Entity):
_binding = common_binding
_binding_class = common_binding.MeasureSourceType
_namespace = 'http://cybox.mitre.org/common-2'
Expand Down
7 changes: 4 additions & 3 deletions cybox/common/object_properties.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Copyright (c) 2015, The MITRE Corporation. All rights reserved.
# See LICENSE.txt for complete terms.

from mixbox import entities
from mixbox import fields

import cybox
Expand Down Expand Up @@ -65,15 +66,15 @@ def from_obj(property_obj):
return prop


class CustomProperties(cybox.EntityList):
class CustomProperties(entities.EntityList):
_binding = common_binding
_binding_class = common_binding.CustomPropertiesType
_binding_var = "Property"
_contained_type = Property
_namespace = 'http://cybox.mitre.org/common-2'


class ObjectProperties(cybox.Entity):
class ObjectProperties(entities.Entity):
"""The Cybox ObjectProperties base class."""

object_reference = fields.TypedField("object_reference")
Expand Down Expand Up @@ -141,7 +142,7 @@ def from_obj(cls, defobj_obj, defobj=None):
# ObjectProperties class, then we don't know the xsi_type of the
# ObjectProperties, so we need to look it up. Otherwise, if this is
# being called on a particular subclass of ObjectProperties (for
# example, Address), we can skip directly to the cybox.Entity
# example, Address), we can skip directly to the entities.Entity
# implementation.
if cls is not ObjectProperties:
return super(ObjectProperties, cls()).from_obj(defobj_obj)
Expand Down
5 changes: 3 additions & 2 deletions cybox/common/platform_specification.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
# Copyright (c) 2015, The MITRE Corporation. All rights reserved.
# See LICENSE.txt for complete terms.

import cybox
from mixbox import entities

import cybox.bindings.cybox_common as common_binding
from cybox.common import String, StructuredText


class PlatformSpecification(cybox.Entity):
class PlatformSpecification(entities.Entity):
'''CybOX Common PlatformSpecification object representation'''
_namespace = 'http://cybox.mitre.org/common-2'

Expand Down
5 changes: 3 additions & 2 deletions cybox/common/properties.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@
from datetime import datetime

import dateutil.parser

from mixbox import entities
from mixbox.vendor import six

import cybox
from cybox.compat import long
import cybox.bindings.cybox_common as common_binding
from cybox.common import PatternFieldGroup
Expand All @@ -18,7 +19,7 @@


@six.python_2_unicode_compatible
class BaseProperty(PatternFieldGroup, cybox.Entity):
class BaseProperty(PatternFieldGroup, entities.Entity):
# Most Properties are defined in the "common" binding, so we'll just set
# that here. Some BaseProperty subclasses might have to override this.
_binding = common_binding
Expand Down

0 comments on commit 0197861

Please sign in to comment.