def get_note_schema() -> dict: return { SchemaOptional("note"): id_schema, SchemaOptional("storedDate"): date_schema, SchemaOptional("storedBy"): str, "value": str, }
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
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
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
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
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)
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)
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, }
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)
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, {}
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
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, }], }
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, }
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, }
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, }
# 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 }
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)
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],
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':