[PATCH 24 of 24 yams V2] [style] remove useless exception

Laurent Peuch cortex at worlddomination.be
Wed Mar 4 15:18:00 CET 2020


# HG changeset patch
# User Laurent Peuch <cortex at worlddomination.be>
# Date 1582763700 -3600
#      Thu Feb 27 01:35:00 2020 +0100
# Node ID 843671e4e6c36004510654433c83751ad525f7db
# Parent  c52784b56910b156b78bfda6922938fd6b5850b1
# Available At https://hg.logilab.org/users/lpeuch/yams
#              hg pull https://hg.logilab.org/users/lpeuch/yams -r 843671e4e6c3
# EXP-Topic type_annotations
[style] remove useless exception

diff --git a/yams/__init__.py b/yams/__init__.py
--- a/yams/__init__.py
+++ b/yams/__init__.py
@@ -103,13 +103,11 @@ def convert_default_value(rdef: _RdefRde
     if isinstance(default, str) and rdef.object != 'String':
         # real Strings can be anything,
         # including things that look like keywords for other base types
-        if str(rdef.object) in KEYWORD_MAP:
-            try:
-                return KEYWORD_MAP[str(rdef.object)][default.upper()]()
-            except KeyError:
-                # the default was likely not a special constant
-                # like TODAY but some literal
-                pass
+        if str(rdef.object) in KEYWORD_MAP and default.upper() in KEYWORD_MAP[str(rdef.object)]:
+            return KEYWORD_MAP[str(rdef.object)][default.upper()]()
+        # else:
+            # the default was likely not a special constant
+            # like TODAY but some literal
 
         # bw compat for old schemas
         if rdef.object in DATE_FACTORY_MAP:
diff --git a/yams/schema.py b/yams/schema.py
--- a/yams/schema.py
+++ b/yams/schema.py
@@ -279,10 +279,8 @@ class EntitySchema(PermissionMixIn, ERSc
             pass
 
     def del_object_relation(self, rtype) -> None:
-        try:
+        if rtype in self.objrels:
             del self.objrels[rtype]
-        except KeyError:
-            pass
 
     # IEntitySchema interface #################################################
 
@@ -627,9 +625,9 @@ class EntitySchema(PermissionMixIn, ERSc
             required = card == '1'
 
             # check value according to their type
-            try:
+            if rschema in entity:
                 value = entity[rschema]
-            except KeyError:
+            else:
                 if creation and required:
                     # missing required attribute with no default on creation
                     # is not autorized
@@ -685,9 +683,9 @@ class EntitySchema(PermissionMixIn, ERSc
 
     def convert_value(self, value: Any) -> Any:
         """check the value of a final entity (ie a const value)"""
-        try:
+        if self.type in self.field_converters:
             return self.field_converters[self.type](value)
-        except KeyError:
+        else:
             return value
 
     def vocabulary(self, rtype: Union[str, _RelationSchemaType]) -> Tuple[str, ...]:
@@ -1141,10 +1139,10 @@ class RelationSchema(ERSchema):
         """
         if etype is None:
             return tuple(self._subj_schemas)
-        try:
+
+        if etype in self._obj_schemas:
             return tuple(self._obj_schemas[etype])
-
-        except KeyError:
+        else:
             raise KeyError("%s does not have %s as object" % (self, etype))
 
     def objects(self, etype: Optional[Union[_EntitySchemaType, str]] = None) ->\
@@ -1174,9 +1172,9 @@ class RelationSchema(ERSchema):
 
     def rdef(self, subject: _EntitySchemaType, object: _EntitySchemaType) -> _RdefSchemaType:
         """return the properties dictionary of a relation"""
-        try:
+        if (subject, object) in self.rdefs:
             return self.rdefs[(subject, object)]
-        except KeyError:
+        else:
             raise KeyError('%s %s %s' % (subject, self, object))
 
     def role_rdef(self, etype: _EntitySchemaType, ttype: Union[_EntitySchemaType, str],
@@ -1242,9 +1240,9 @@ class Schema(object):
             rschema._rehash()
 
     def get(self, name: str, default=None) -> Any:
-        try:
+        if name in self:
             return self[name]
-        except KeyError:
+        else:
             return default
 
     def __getitem__(self, name: str) -> Union[_EntitySchemaType, _RelationSchemaType]:
@@ -1452,9 +1450,9 @@ class Schema(object):
         :rtype: `EntitySchema`
         :raise `KeyError`: if the type is not defined as an entity
         """
-        try:
+        if etype in self._entities:
             return self._entities[etype]
-        except KeyError:
+        else:
             if isinstance(etype, tuple):
                 etype = list(etype)
             raise KeyError('No entity named %s in schema' % etype)
@@ -1484,9 +1482,9 @@ class Schema(object):
 
         :rtype: `RelationSchema`
         """
-        try:
+        if rtype in self._relations:
             return self._relations[rtype]
-        except KeyError:
+        else:
             raise KeyError('No relation named %s in schema' % rtype)
 
     def finalize(self) -> None:
diff --git a/yams/schema2dot.py b/yams/schema2dot.py
--- a/yams/schema2dot.py
+++ b/yams/schema2dot.py
@@ -280,9 +280,9 @@ def run() -> None:
 
     loader = SchemaLoader()
 
-    try:
+    if sys.argv[1:]:
         schema_dir = sys.argv[1]
-    except IndexError:
+    else:
         print("USAGE: schema2dot SCHEMA_DIR [OUTPUT FILE]")
         sys.exit(1)
 



More information about the cubicweb-devel mailing list