コード例 #1
0
ファイル: schema.py プロジェクト: solleks/commcare-hq
def get_note_schema() -> dict:
    return {
        SchemaOptional("note"): id_schema,
        SchemaOptional("storedDate"): date_schema,
        SchemaOptional("storedBy"): str,
        "value": str,
    }
コード例 #2
0
ファイル: value_source.py プロジェクト: caktus/commcare-hq
 def get_schema_params(cls) -> Tuple[Tuple, Dict]:
     (schema, *other_args), kwargs = super().get_schema_params()
     schema.update({
         'subcase_value_source': And(dict, len),
         SchemaOptional('case_types'): list,
         SchemaOptional('is_closed'): bool,
     })
     return (schema, *other_args), kwargs
コード例 #3
0
ファイル: value_source.py プロジェクト: caktus/commcare-hq
 def get_schema_params(cls) -> Tuple[Tuple, Dict]:
     (schema, *other_args), kwargs = super().get_schema_params()
     schema.update({
         'supercase_value_source':
         And(dict, len),
         SchemaOptional('identifier'):
         str,
         SchemaOptional('referenced_type'):
         str,
         SchemaOptional('relationship'):
         lambda r: r in ('child', 'extension'),
     })
     return (schema, *other_args), kwargs
コード例 #4
0
ファイル: value_source.py プロジェクト: caktus/commcare-hq
 def get_schema_params(cls) -> Tuple[Tuple, Dict]:
     (schema, *other_args), kwargs = super().get_schema_params()
     schema.pop(SchemaOptional("doc_type"))
     old_style = schema.copy()
     old_style.update({
         "doc_type": "FormUserAncestorLocationField",
         "location_field": str,
     })
     new_style = schema.copy()
     new_style.update({
         SchemaOptional("doc_type"): "FormUserAncestorLocationField",
         "form_user_ancestor_location_field": str,
     })
     schema = Or(old_style, new_style)
     return (schema, *other_args), kwargs
コード例 #5
0
ファイル: value_source.py プロジェクト: caktus/commcare-hq
 def get_schema_params(cls) -> Tuple[Tuple, Dict]:
     (schema, *other_args), kwargs = super().get_schema_params()
     schema.update({
         "value": object,
         SchemaOptional("value_data_type"): str,
     })
     return (schema, *other_args), kwargs
コード例 #6
0
ファイル: basic_pruner.py プロジェクト: SparkSnail/nni
 def _validate_config_before_canonical(self, model: Module, config_list: List[Dict]):
     schema_list = [deepcopy(NORMAL_SCHEMA), deepcopy(INTERNAL_SCHEMA)]
     for schema in schema_list:
         schema.update({SchemaOptional('rho'): And(float, lambda n: n > 0)})
     schema_list.append(deepcopy(EXCLUDE_SCHEMA))
     schema = CompressorSchema(schema_list, model, _logger)
     schema.validate(config_list)
コード例 #7
0
ファイル: basic_pruner.py プロジェクト: SparkSnail/nni
    def _validate_config_before_canonical(self, model: Module, config_list: List[Dict]):
        schema_list = [deepcopy(NORMAL_SCHEMA), deepcopy(EXCLUDE_SCHEMA), deepcopy(INTERNAL_SCHEMA)]
        for sub_shcema in schema_list:
            sub_shcema[SchemaOptional('op_types')] = ['Conv2d', 'Linear']
        schema = CompressorSchema(schema_list, model, _logger)

        schema.validate(config_list)
コード例 #8
0
ファイル: schema.py プロジェクト: solleks/commcare-hq
def get_relationship_schema() -> dict:
    return {
        "relationshipType": id_schema,
        SchemaOptional("relationshipName"): str,
        SchemaOptional("relationship"): id_schema,
        SchemaOptional("bidirectional"): bool,
        "from": {
            "trackedEntityInstance": {
                "trackedEntityInstance": id_schema,
            }
        },
        "to": {
            "trackedEntityInstance": {
                "trackedEntityInstance": id_schema,
            }
        },
        SchemaOptional("created"): datetime_schema,
        SchemaOptional("lastUpdated"): datetime_schema,
    }
コード例 #9
0
ファイル: basic_pruner.py プロジェクト: SparkSnail/nni
    def _validate_config_before_canonical(self, model: Module, config_list: List[Dict]):
        schema_list = [deepcopy(EXCLUDE_SCHEMA), deepcopy(INTERNAL_SCHEMA)]
        if self.mode == 'global':
            schema_list.append(deepcopy(GLOBAL_SCHEMA))
        else:
            schema_list.append(deepcopy(NORMAL_SCHEMA))
        for sub_shcema in schema_list:
            sub_shcema[SchemaOptional('op_types')] = ['BatchNorm2d']
        schema = CompressorSchema(schema_list, model, _logger)

        schema.validate(config_list)
コード例 #10
0
 def get_schema_params(cls) -> Tuple[Tuple, Dict]:
     args = ({
         SchemaOptional("doc_type"): str,
         SchemaOptional("external_data_type"): str,
         SchemaOptional("commcare_data_type"): Or(*COMMCARE_DATA_TYPES_AND_UNKNOWN),
         SchemaOptional("direction"): Or(*DIRECTIONS),
         SchemaOptional("value_map"): dict,
         SchemaOptional("jsonpath"): str,
     },)
     return args, {}
コード例 #11
0
    def _validate_config_before_canonical(self, model: Module, config_list: List[Dict]):
        schema_list = [deepcopy(EXCLUDE_SCHEMA), deepcopy(INTERNAL_SCHEMA)]
        if self.mode == 'global':
            schema_list.append(deepcopy(GLOBAL_SCHEMA))
        else:
            schema_list.append(deepcopy(NORMAL_SCHEMA))
        for sub_shcema in schema_list:
            sub_shcema[SchemaOptional('op_types')] = ['Conv2d', 'Linear']
        schema = CompressorSchema(schema_list, model, _logger)

        try:
            schema.validate(config_list)
        except SchemaError as e:
            if "Missing key: 'total_sparsity'" in str(e):
                _logger.error('`config_list` validation failed. If global mode is set in this pruner, `sparsity_per_layer` and `sparsity` are not supported, make sure `total_sparsity` is set in config_list.')
            raise e
コード例 #12
0
def get_event_schema() -> dict:
    """
    Returns the schema for a DHIS2 Event.

    >>> event = {
    ...   "program": "eBAyeGv0exc",
    ...   "orgUnit": "DiszpKrYNg8",
    ...   "eventDate": "2013-05-17",
    ...   "status": "COMPLETED",
    ...   "completedDate": "2013-05-18",
    ...   "storedBy": "admin",
    ...   "coordinate": {
    ...     "latitude": 59.8,
    ...     "longitude": 10.9
    ...   },
    ...   "dataValues": [
    ...     { "dataElement": "qrur9Dvnyt5", "value": "22" },
    ...     { "dataElement": "oZg33kd9taw", "value": "Male" },
    ...     { "dataElement": "msodh3rEMJa", "value": "2013-05-18" }
    ...   ]
    ... }
    >>> Schema(get_event_schema()).is_valid(event)
    True

    """
    date_str = Regex(r"^\d{4}-\d{2}-\d{2}$")
    dhis2_id_str = Regex(r"^[A-Za-z0-9]+$")  # (ASCII \w without underscore)
    return {
        "program":
        dhis2_id_str,
        "orgUnit":
        dhis2_id_str,
        "eventDate":
        date_str,
        SchemaOptional("completedDate"):
        date_str,
        SchemaOptional("status"):
        Regex("^(ACTIVE|COMPLETED|VISITED|SCHEDULE|OVERDUE|SKIPPED)$"),
        SchemaOptional("storedBy"):
        str,
        SchemaOptional("coordinate"): {
            "latitude": float,
            "longitude": float,
        },
        SchemaOptional("geometry"): {
            "type": str,
            "coordinates": [float],
        },
        SchemaOptional("assignedUser"):
        dhis2_id_str,
        "dataValues": [{
            "dataElement": dhis2_id_str,
            "value": object,
        }],
    }
コード例 #13
0
ファイル: schema.py プロジェクト: solleks/commcare-hq
def get_attribute_schema() -> dict:
    return {
        "attribute": id_schema,
        SchemaOptional("code"): str,
        SchemaOptional("created"): datetime_schema,
        SchemaOptional("displayName"): str,
        SchemaOptional("lastUpdated"): datetime_schema,
        SchemaOptional("storedBy"): str,
        "value": object,
        SchemaOptional("valueType"): str,
    }
コード例 #14
0
ファイル: schema.py プロジェクト: solleks/commcare-hq
def get_event_schema() -> dict:
    """
    Returns the schema for a DHIS2 Event.

    >>> event = {
    ...   "program": "eBAyeGv0exc",
    ...   "orgUnit": "DiszpKrYNg8",
    ...   "eventDate": "2013-05-17",
    ...   "status": "COMPLETED",
    ...   "completedDate": "2013-05-18",
    ...   "storedBy": "admin",
    ...   "coordinate": {
    ...     "latitude": 59.8,
    ...     "longitude": 10.9
    ...   },
    ...   "dataValues": [
    ...     { "dataElement": "qrur9Dvnyt5", "value": "22" },
    ...     { "dataElement": "oZg33kd9taw", "value": "Male" },
    ...     { "dataElement": "msodh3rEMJa", "value": "2013-05-18" }
    ...   ]
    ... }
    >>> Schema(get_event_schema()).is_valid(event)
    True

    """
    coordinate_schema = get_coordinate_schema()
    note_schema = get_note_schema()
    relationship_schema = get_relationship_schema()
    return {
        SchemaOptional("assignedUser"):
        id_schema,
        SchemaOptional("attributeCategoryOptions"):
        id_schema,
        SchemaOptional("attributeOptionCombo"):
        id_schema,
        SchemaOptional("completedBy"):
        str,
        SchemaOptional("completedDate"):
        date_schema,
        SchemaOptional("coordinate"):
        coordinate_schema,
        SchemaOptional("created"):
        datetime_schema,
        SchemaOptional("createdAtClient"):
        datetime_schema,
        "dataValues": [{
            SchemaOptional("created"): datetime_schema,
            "dataElement": id_schema,
            SchemaOptional("lastUpdated"): datetime_schema,
            SchemaOptional("providedElsewhere"): bool,
            SchemaOptional("storedBy"): str,
            "value": object,
        }],
        SchemaOptional("deleted"):
        bool,
        SchemaOptional("dueDate"):
        date_schema,
        SchemaOptional("enrollment"):
        id_schema,
        SchemaOptional("enrollmentStatus"):
        enrollment_status_schema,
        SchemaOptional("event"):
        id_schema,
        "eventDate":
        date_schema,
        SchemaOptional("geometry"): {
            "type": str,
            "coordinates": [float],
        },
        SchemaOptional("lastUpdated"):
        datetime_schema,
        SchemaOptional("lastUpdatedAtClient"):
        datetime_schema,
        SchemaOptional("notes"): [note_schema],
        "orgUnit":
        id_schema,
        SchemaOptional("orgUnitName"):
        str,
        "program":
        id_schema,
        SchemaOptional("programStage"):
        id_schema,
        SchemaOptional("relationships"): [relationship_schema],
        SchemaOptional("status"):
        event_status_schema,
        SchemaOptional("storedBy"):
        str,
        SchemaOptional("trackedEntityInstance"):
        id_schema,
    }
コード例 #15
0
ファイル: schema.py プロジェクト: solleks/commcare-hq
def get_tracked_entity_schema() -> dict:
    """
    Returns the schema of a tracked entity instance.
    """
    attribute_schema = get_attribute_schema()
    coordinate_schema = get_coordinate_schema()
    event_schema = get_event_schema()
    geometry_schema = get_geometry_schema()
    note_schema = get_note_schema()
    relationship_schema = get_relationship_schema()
    return {
        SchemaOptional("attributes"): [attribute_schema],
        SchemaOptional("created"):
        datetime_schema,
        SchemaOptional("createdAtClient"):
        datetime_schema,
        SchemaOptional("deleted"):
        bool,
        SchemaOptional("enrollments"): [{
            SchemaOptional("attributes"): [attribute_schema],
            SchemaOptional("created"):
            datetime_schema,
            SchemaOptional("createdAtClient"):
            datetime_schema,
            SchemaOptional("completedBy"):
            str,
            SchemaOptional("completedDate"):
            date_schema,
            SchemaOptional("coordinate"):
            coordinate_schema,
            SchemaOptional("deleted"):
            bool,
            SchemaOptional("enrollment"):
            id_schema,
            SchemaOptional("enrollmentDate"):
            date_schema,
            SchemaOptional("events"): [event_schema],
            SchemaOptional("geometry"):
            geometry_schema,
            SchemaOptional("incidentDate"):
            date_schema,
            SchemaOptional("lastUpdated"):
            datetime_schema,
            SchemaOptional("lastUpdatedAtClient"):
            datetime_schema,
            SchemaOptional("notes"): [note_schema],
            "orgUnit":
            id_schema,
            SchemaOptional("orgUnitName"):
            str,
            "program":
            id_schema,
            SchemaOptional("relationships"): [relationship_schema],
            SchemaOptional("status"):
            enrollment_status_schema,
            SchemaOptional("storedBy"):
            str,
            SchemaOptional("trackedEntityInstance"):
            id_schema,
            SchemaOptional("trackedEntityType"):
            id_schema,
        }],
        SchemaOptional("featureType"):
        str,
        SchemaOptional("geometry"):
        geometry_schema,
        SchemaOptional("inactive"):
        bool,
        SchemaOptional("lastUpdated"):
        datetime_schema,
        SchemaOptional("lastUpdatedAtClient"):
        datetime_schema,
        "orgUnit":
        id_schema,
        SchemaOptional("programOwners"): [object],
        SchemaOptional("relationships"): [relationship_schema],
        SchemaOptional("trackedEntityInstance"):
        id_schema,
        "trackedEntityType":
        id_schema,
    }
コード例 #16
0
    # These are all the supported schemas
    2: {
        'schema': int,
        'id': str,
        'name': str,
        # Does description belong here? I feel like this should be written once.
        'description': str,

        # Timestamp this Gigantum Project was created
        'created_on': str,

        # Details of the application that created it
        'build_info': str,

        # Boolean to indicate whether this was migrated from schema 1
        SchemaOptional('migrated'): bool
    },

    1: {
        # TODO next time we version schema remove cuda_version.  It is no longer used.  Ask RB
        SchemaOptional('cuda_version'): SchemaOr(SchemaUse(str), None),
        'labbook': {
            'id': str,
            'name': str,
            'description': str
        },
        'owner': {
            'username': str
        },
        'schema': int
    }
コード例 #17
0
ファイル: config.py プロジェクト: d-ryzhikov/captiw
def valid_port(port: int) -> bool:
    """
    Checks that given port is in valid port range.

    >>> valid_port(0)
    False
    >>> valid_port(8080)
    True
    """
    return 1 <= port <= 65535


Config = Schema(
    {
        SchemaOptional("host", default="localhost"): str,
        "port": And(Use(int), valid_port),
    },
    ignore_extra_keys=True,
)


def load_config(
    settings: Optional[Dict[str, str]] = None, case_insensitive=True, use_env=True,
):
    settings = settings or {}
    if use_env:
        settings.update(os.environ)
    if case_insensitive:
        settings = {k.lower(): v for k, v in settings.items()}
    return Config.validate(settings)
コード例 #18
0
                    APoZRankMetricsCalculator, MeanRankMetricsCalculator)

from .tools import (SparsityAllocator, NormalSparsityAllocator,
                    GlobalSparsityAllocator, Conv2dDependencyAwareAllocator)

_logger = logging.getLogger(__name__)

__all__ = [
    'LevelPruner', 'L1NormPruner', 'L2NormPruner', 'FPGMPruner', 'SlimPruner',
    'ActivationPruner', 'ActivationAPoZRankPruner', 'ActivationMeanRankPruner',
    'TaylorFOWeightPruner', 'ADMMPruner'
]

NORMAL_SCHEMA = {
    Or('sparsity', 'sparsity_per_layer'): And(float, lambda n: 0 <= n < 1),
    SchemaOptional('op_types'): [str],
    SchemaOptional('op_names'): [str],
    SchemaOptional('op_partial_names'): [str]
}

GLOBAL_SCHEMA = {
    'total_sparsity': And(float, lambda n: 0 <= n < 1),
    SchemaOptional('max_sparsity_per_layer'): And(float, lambda n: 0 < n <= 1),
    SchemaOptional('op_types'): [str],
    SchemaOptional('op_names'): [str],
    SchemaOptional('op_partial_names'): [str]
}

EXCLUDE_SCHEMA = {
    'exclude': bool,
    SchemaOptional('op_types'): [str],
コード例 #19
0
ファイル: schemas.py プロジェクト: jjwatts/gigantum-client
CURRENT_SCHEMA = 2

DATASET_SCHEMA_VERSIONS = {
    # Note: Each time a new schema version is needed, add it into this dictionary
    # with its version number as its key.
    #
    # These are all the supported schemas
    2: {
        'schema': int,
        'id': str,
        'name': str,
        'description': str,
        'created_on': str,
        'storage_type': str,
        'build_info': str,
        SchemaOptional('migrated'): bool
    },
    1: {
        'schema':
        int,
        'id':
        str,
        'name':
        str,
        'description':
        str,
        'created_on':
        str,
        'storage_type':
        str,
        'build_info':