def remove_property(self, norm_url, name, dry_run=False, environ=None):
_logger.debug(<EOL>"<STR_LIT>".format(norm_url, name, dry_run)<EOL>)<EOL>if dry_run:<EOL><INDENT>return<EOL><DEDENT>self._lock.acquire_write()<EOL>try:<EOL><INDENT>if not self._loaded:<EOL><INDENT>self._lazy_open()<EOL><DEDENT>if norm_url in self._dict:<EOL><INDENT>locatordict = self._dict[norm_url]<EOL>if name in locatordict:<EOL><INDENT>del locatordict[name]<EOL>self._dict[norm_url] = locatordict<EOL>self._sync()<EOL><DEDENT><DEDENT>if __debug__ and self._verbose >= <NUM_LIT:4>:<EOL><INDENT>self._check()<EOL><DEDENT><DEDENT>finally:<EOL><INDENT>self._lock.release()<EOL><DEDENT>
Specifying the removal of a property that does not exist is NOT an error.