Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update exception usage #898

Merged
merged 1 commit into from
Mar 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion sphinxcontrib/confluencebuilder/builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -1014,7 +1014,8 @@ def _header_footer_init(self, docname, doctree):
else:
# unsupported source type should not pass here after this
# extension's configuration check
raise AssertionError('unsupported source type')
msg = 'unsupported source type'
raise AssertionError(msg)

sourcelink['url'] = url_base + url

Expand Down
6 changes: 4 additions & 2 deletions sphinxcontrib/confluencebuilder/config/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ def process_ask_configs(config):

target_user = input(f' User{u_str}: ') or default_user
if not target_user:
raise ConfluenceConfigError('no user provided')
msg = 'no user provided'
raise ConfluenceConfigError(msg)

config.confluence_server_user = target_user

Expand All @@ -71,4 +72,5 @@ def process_ask_configs(config):
sys.stdout.flush()
config.confluence_server_pass = util.getpass2('')
if not config.confluence_server_pass:
raise ConfluenceConfigError('no password provided')
msg = 'no password provided'
raise ConfluenceConfigError(msg)
90 changes: 45 additions & 45 deletions sphinxcontrib/confluencebuilder/config/validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,12 @@ def bool(self):
if isinstance(value, str) or isinstance(value, int):
try:
str2bool(value)
except ValueError:
raise ConfluenceConfigError(
'%s is not a boolean string' % self.key)
except ValueError as ex:
msg = f'{self.key} is not a boolean string'
raise ConfluenceConfigError(msg) from ex
elif not isinstance(value, bool) and not isinstance(value, int):
raise ConfluenceConfigError(
'%s is not a boolean type' % self.key)
msg = f'{self.key} is not a boolean type'
raise ConfluenceConfigError(msg)

return self

Expand All @@ -83,8 +83,8 @@ def callable_(self):
value = self._value()

if value is not None and not callable(value):
raise ConfluenceConfigError(
'%s is not a callable' % self.key)
msg = f'{self.key} is not a callable'
raise ConfluenceConfigError(msg)

return self

Expand Down Expand Up @@ -130,8 +130,8 @@ def dict_str_str(self):
if value is not None:
if not isinstance(value, dict) or not all(isinstance(k, str)
and isinstance(v, str) for k, v in value.items()):
raise ConfluenceConfigError(
'%s is not a dictionary of strings' % self.key)
msg = f'{self.key} is not a dictionary of strings'
raise ConfluenceConfigError(msg)

return self

Expand All @@ -155,15 +155,15 @@ def docnames(self):
if value is not None:
if not (isinstance(value, (list, set, tuple))) or not all(
isinstance(label, (str, os.PathLike)) for label in value):
raise ConfluenceConfigError(
'%s is not a collection of filenames' % self.key)
msg = f'{self.key} is not a collection of filenames'
raise ConfluenceConfigError(msg)

for docname in value:
if not any(
Path(self.env.srcdir, docname + suffix).is_file()
for suffix in self.config.source_suffix):
raise ConfluenceConfigError(
f'{self.key} is missing document {docname}')
msg = f'{self.key} is missing document {docname}'
raise ConfluenceConfigError(msg)

return self

Expand Down Expand Up @@ -193,8 +193,8 @@ def docnames_from_file(self):
if not any(
Path(self.env.srcdir, docname + suffix).is_file()
for suffix in self.config.source_suffix):
raise ConfluenceConfigError(
f'{self.key} is missing document {docname}')
msg = f'{self.key} is missing document {docname}'
raise ConfluenceConfigError(msg)

return self

Expand All @@ -220,8 +220,8 @@ def enum(self, etype):
try:
value = etype[value.lower()]
except (AttributeError, KeyError):
raise ConfluenceConfigError(
f'{self.key} is not an enumeration ({etype.__name__})')
msg = f'{self.key} is not an enumeration ({etype.__name__})'
raise ConfluenceConfigError(msg)

return self

Expand All @@ -245,8 +245,8 @@ def file(self):
if value is not None:
if not isinstance(value, (str, os.PathLike)) or \
not Path(self.env.srcdir, value).is_file():
raise ConfluenceConfigError(
'%s is not a file' % self.key)
msg = f'{self.key} is not a file'
raise ConfluenceConfigError(msg)

return self

Expand Down Expand Up @@ -276,18 +276,18 @@ def float_(self, positive=False):
try:
value = float(value)
except ValueError:
raise ConfluenceConfigError(
'%s is not a float string' % self.key)
msg = f'{self.key} is not a float string'
raise ConfluenceConfigError(msg)
elif isinstance(value, int):
value = float(value)

if positive:
if not isinstance(value, float) or value <= 0:
raise ConfluenceConfigError(
'%s is not a positive float' % self.key)
msg = f'{self.key} is not a positive float'
raise ConfluenceConfigError()
elif not isinstance(value, float) or value < 0:
raise ConfluenceConfigError(
'%s is not a non-negative float' % self.key)
msg = f'{self.key} is not a non-negative float'
raise ConfluenceConfigError(msg)

return self

Expand Down Expand Up @@ -317,16 +317,16 @@ def int_(self, positive=False):
try:
value = int(value)
except ValueError:
raise ConfluenceConfigError(
'%s is not an integer string' % self.key)
msg = f'{self.key} is not an integer string'
raise ConfluenceConfigError(msg)

if positive:
if not isinstance(value, int) or value <= 0:
raise ConfluenceConfigError(
'%s is not a positive integer' % self.key)
msg = f'{self.key} is not a positive integer'
raise ConfluenceConfigError(msg)
elif not isinstance(value, int) or value < 0:
raise ConfluenceConfigError(
'%s is not a non-negative integer' % self.key)
msg = f'{self.key} is not a non-negative integer'
raise ConfluenceConfigError(msg)

return self

Expand All @@ -351,8 +351,8 @@ def matching(self, *expected):
value = self._value()

if value is not None and value not in expected:
raise ConfluenceConfigError(
'%s does not match expected values' % self.key)
msg = f'{self.key} does not match expected values'
raise ConfluenceConfigError(msg)

return self

Expand All @@ -376,8 +376,8 @@ def path(self):
if value is not None:
if not isinstance(value, (str, os.PathLike)) or \
not Path(self.env.srcdir, value).exists():
raise ConfluenceConfigError(
'%s is not a path' % self.key)
msg = f'{self.key} is not a path'
raise ConfluenceConfigError(msg)

return self

Expand All @@ -400,8 +400,8 @@ def string(self):
value = self._value()

if value is not None and not isinstance(value, str):
raise ConfluenceConfigError(
'%s is not a string' % self.key)
msg = f'{self.key} is not a string'
raise ConfluenceConfigError(msg)

return self

Expand All @@ -425,11 +425,11 @@ def string_or_strings(self):
if value is not None:
if isinstance(value, (list, set, tuple)):
if not all(isinstance(entry, str) for entry in value):
raise ConfluenceConfigError(
'%s is not a collection of strings' % self.key)
msg = f'{self.key} is not a collection of strings'
raise ConfluenceConfigError(msg)
elif not isinstance(value, str):
raise ConfluenceConfigError(
'%s is not a string or collection of strings' % self.key)
msg = f'{self.key} is not a string or collection of strings'
raise ConfluenceConfigError(msg)

return self

Expand Down Expand Up @@ -457,14 +457,14 @@ def strings(self, no_space=False):
if value is not None:
if not (isinstance(value, (list, set, tuple)) and all(
isinstance(entry, str) for entry in value)):
raise ConfluenceConfigError(
'%s is not a collection of strings' % self.key)
msg = f'{self.key} is not a collection of strings'
raise ConfluenceConfigError(msg)

if no_space:
for entry in value:
if ' ' in entry:
raise ConfluenceConfigError(
'%s has an entry containing a space' % self.key)
msg = f'{self.key} has an entry containing a space'
raise ConfluenceConfigError(msg)

return self

Expand Down
37 changes: 22 additions & 15 deletions sphinxcontrib/confluencebuilder/directives.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ def run(self):
return [node]

def _build_card_node(self):
raise NotImplementedError()
raise NotImplementedError


class ConfluenceDocDirective(ConfluenceCardDirective):
Expand Down Expand Up @@ -260,41 +260,48 @@ def run(self):
# if explicit server is provided, ensure both options are set
if 'server' in params or 'serverId' in params:
if 'server' not in params:
raise self.error(':server-name: required when server-id is '
'set; but none supplied')
msg = ':server-name: required when server-id is ' \
'set; but none supplied'
raise self.error(msg)
if 'serverId' not in params:
raise self.error(':server-id: required when server-name is '
'set; but none supplied')
msg = ':server-id: required when server-name is ' \
'set; but none supplied'
raise self.error(msg)
# if a server key is provided, fetch values from configuration
elif target_server:
config = self.state.document.settings.env.config
if not config.confluence_jira_servers:
raise self.error(':server: is set but no '
'confluence_jira_servers defined in config')
msg = ':server: is set but no ' \
'confluence_jira_servers defined in config'
raise self.error(msg)
jira_servers = config['confluence_jira_servers']
if target_server not in jira_servers:
raise self.error(':server: is set but does not exist in '
'confluence_jira_servers config')
msg = ':server: is set but does not exist in ' \
'confluence_jira_servers config'
raise self.error(msg)
jira_server_config = jira_servers[target_server]
if 'name' not in jira_server_config:
raise self.error(':server: is set but missing name entry in '
'confluence_jira_servers config')
msg = ':server: is set but missing name entry in ' \
'confluence_jira_servers config'
raise self.error(msg)
params['server'] = jira_server_config['name']
if 'id' not in jira_server_config:
raise self.error(':server: is set but missing id entry in '
'confluence_jira_servers config')
msg = ':server: is set but missing id entry in ' \
'confluence_jira_servers config'
raise self.error(msg)
params['serverId'] = jira_server_config['id']

if 'serverId' in params:
try:
UUID(params['serverId'], version=4)
except ValueError:
raise self.error('server-id is not a valid uuid')
msg = 'server-id is not a valid uuid'
raise self.error(msg)

return [node]

def _build_jira_node(self):
raise NotImplementedError()
raise NotImplementedError


class JiraDirective(JiraBaseDirective):
Expand Down
Loading