Sourcery suggested refactorings - #152

Open
SourceryAI wants to merge 4 commits into
level12:masterfrom
SourceryAI:sourcery_suggested_refactorings
Open

Sourcery suggested refactorings#152
SourceryAI wants to merge 4 commits into
level12:masterfrom
SourceryAI:sourcery_suggested_refactorings

Conversation

@SourceryAI

Copy link
Copy Markdown

Sourcery refactored this code to make it cleaner and more readable.

If you want Sourcery to review the full project or all new pull requests, add Sourcery to your repo.

We try to only open PRs that are helpful. If this isn't helpful or you have any feedback for us - please let us know!

Comment threadwebgrid/__init__.py Outdated
column.xlwt_stymat = self.xlwt_stymat_init()
else:
column.xlwt_stymat = None
column.xlwt_stymat = self.xlwt_stymat_init() if xlwt is not None else None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function Column.new_instance refactored with the following changes:

Comment threadwebgrid/__init__.py Outdated
Comment on lines +557 to +559
if arrow and isinstance(data, arrow.Arrow):
if data.strftime(format) == format:
return data.format(format)
if (
arrow
and isinstance(data, arrow.Arrow)
and data.strftime(format) == format
):
return data.format(format)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateColumnBase._format_datetime refactored with the following changes:

Comment threadwebgrid/__init__.py
Comment on lines -1589 to +1590
else:
sort_display.append(col.key)
redundant.append(col.key)
sort_display.append(col.key)
redundant.append(col.key)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function BaseGrid.query_sort refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
class CustomJsonEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime.date) or isinstance(obj, arrow.Arrow):
if isinstance(obj, (datetime.date, arrow.Arrow)):

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CustomJsonEncoder.default refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
current_args = self.json_to_args(data)
else:
current_args = MultiDict()
current_args = self.json_to_args(data) if data else MultiDict()

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function RequestJsonLoader.get_args refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
Comment on lines +344 to +341
web_session['dgsessions'] = dict()
web_session['dgsessions'] = {}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function WebSessionArgsLoader.save_session_store refactored with the following changes:

Comment threadwebgrid/extensions.py
Comment on lines -409 to +407
if grid.session_on:
self.remove_grid_session(previous_args.get('session_key') or grid.session_key)
self.remove_grid_session(grid.default_session_key)
self.remove_grid_session(previous_args.get('session_key') or grid.session_key)
self.remove_grid_session(grid.default_session_key)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function WebSessionArgsLoader.get_args refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -458 to +464
else:
# if its not the string 'auto' and its not a formencode validator, assume
# its a callable and wrap with a formencode validator
if not hasattr(self.value_modifier, 'to_python'):
if not hasattr(self.value_modifier, '__call__'):
raise TypeError(
_('value_modifier must be the string "auto", have a "to_python" attribute, '
'or be a callable')
)
self.value_modifier = feval.Wrapper(to_python=self.value_modifier)
elif not hasattr(self.value_modifier, 'to_python'):
if not hasattr(self.value_modifier, '__call__'):
raise TypeError(
_('value_modifier must be the string "auto", have a "to_python" attribute, '
'or be a callable')
)
self.value_modifier = feval.Wrapper(to_python=self.value_modifier)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function OptionsFilterBase.setup_validator refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -510 to +511
if self.op in (ops.is_, ops.not_is) and not (self.value1 or self.default_op):
self.op = None
if (
self.op in (ops.is_, ops.not_is)
and not self.value1
and not self.default_op
): self.op = None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function OptionsFilterBase.set refactored with the following changes:

  • Simplify logical expression using De Morgan identities (de-morgan)

Comment threadwebgrid/filters.py
else:
# !!!: localize
target_date = first_day if first_day else last_day
target_date = first_day or last_day

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function _DateMixin.description refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -1241 to +1247
if is_value2:
if self.op in (ops.between, ops.not_between):
value = ''
else:
return None
else:
if not is_value2:
raise formencode.Invalid(gettext('invalid date'), value, self)

if self.op in (ops.between, ops.not_between):
value = ''
else:
return None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateFilter.process refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -1432 to +1437
if is_value2:
if self.op in (ops.between, ops.not_between):
value = ''
else:
return None
else:
if not is_value2:
raise formencode.Invalid(gettext('invalid date'), value, self)

if self.op in (ops.between, ops.not_between):
value = ''
else:
return None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateTimeFilter.process refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
return True

return False
return any(col.group for col in self.columns)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function GroupMixin.has_groups refactored with the following changes:

  • Use any() instead of for loop (use-any)

Comment threadwebgrid/renderers.py
Comment on lines -395 to +394
rows = []
for col in six.itervalues(self.grid.filtered_cols):
rows.append(self.filtering_table_row(col))
rows = [
self.filtering_table_row(col)
for col in six.itervalues(self.grid.filtered_cols)
]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.filtering_fields refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
Comment on lines +438 to +435
if not filter.is_display_active:
current_selected = ''
else:
current_selected = filter.op
current_selected = '' if not filter.is_display_active else filter.op

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function `HTML.filtering_col_op_selectz refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -843 to +837
headings = []
for col in self.columns:
headings.append(self.table_th(col))
headings = [self.table_th(col) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_column_headings refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -890 to +882
url_args = {}
url_args['dgreset'] = None
url_args['sort2'] = None
url_args['sort3'] = None
url_args = {'dgreset': None, 'sort2': None, 'sort3': None}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_th refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -956 to +945
if (rownum + 1) % 2 == 1:
row_hah.class_ += 'odd'
else:
row_hah.class_ += 'even'
row_hah.class_ += 'odd' if (rownum + 1) % 2 == 1 else 'even'

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_tr_styler refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -984 to +970
cells = []
for col in self.columns:
cells.append(self.table_td(col, record))
cells = [self.table_td(col, record) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_tr refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
Comment on lines +1011 to +999
buffer_hah = {
'colspan': colspan,
'class': 'totals-label'
}
if colspan:
buffer_hah = {
'colspan': colspan,
'class': 'totals-label'
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_totals refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1133 to +1126
url_args = {}
url_args['perpage'] = None
url_args['onpage'] = None
url_args['search'] = None
url_args['sort1'] = None
url_args['sort2'] = None
url_args['sort3'] = None
url_args['export_to'] = None
url_args['datagrid-add-filter'] = None
url_args = {
'perpage': None,
'onpage': None,
'search': None,
'sort1': None,
'sort2': None,
'sort3': None,
'export_to': None,
'datagrid-add-filter': None,
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.reset_url refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1671 to +1656
headings = []
for col in self.columns:
headings.append(col.label)
headings = [col.label for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CSV.body_headings refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1686 to +1669
row = []
for col in self.columns:
row.append(col.render('csv', record))
row = [col.render('csv', record) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CSV.body_records refactored with the following changes:

@rsyring
rsyringforce-pushed the master branch 3 times, most recently from 5d42130 to 97cc369CompareAugust 6, 2025 22:09
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@SourceryAI
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Sourcery suggested refactorings - #152

Open
SourceryAI wants to merge 4 commits into
level12:masterfrom
SourceryAI:sourcery_suggested_refactorings
Open

Sourcery suggested refactorings#152
SourceryAI wants to merge 4 commits into
level12:masterfrom
SourceryAI:sourcery_suggested_refactorings

Conversation

@SourceryAI

Copy link
Copy Markdown

Sourcery refactored this code to make it cleaner and more readable.

If you want Sourcery to review the full project or all new pull requests, add Sourcery to your repo.

We try to only open PRs that are helpful. If this isn't helpful or you have any feedback for us - please let us know!

Comment threadwebgrid/__init__.py Outdated
column.xlwt_stymat = self.xlwt_stymat_init()
else:
column.xlwt_stymat = None
column.xlwt_stymat = self.xlwt_stymat_init() if xlwt is not None else None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function Column.new_instance refactored with the following changes:

Comment threadwebgrid/__init__.py Outdated
Comment on lines +557 to +559
if arrow and isinstance(data, arrow.Arrow):
if data.strftime(format) == format:
return data.format(format)
if (
arrow
and isinstance(data, arrow.Arrow)
and data.strftime(format) == format
):
return data.format(format)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateColumnBase._format_datetime refactored with the following changes:

Comment threadwebgrid/__init__.py
Comment on lines -1589 to +1590
else:
sort_display.append(col.key)
redundant.append(col.key)
sort_display.append(col.key)
redundant.append(col.key)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function BaseGrid.query_sort refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
class CustomJsonEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime.date) or isinstance(obj, arrow.Arrow):
if isinstance(obj, (datetime.date, arrow.Arrow)):

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CustomJsonEncoder.default refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
current_args = self.json_to_args(data)
else:
current_args = MultiDict()
current_args = self.json_to_args(data) if data else MultiDict()

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function RequestJsonLoader.get_args refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
Comment on lines +344 to +341
web_session['dgsessions'] = dict()
web_session['dgsessions'] = {}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function WebSessionArgsLoader.save_session_store refactored with the following changes:

Comment threadwebgrid/extensions.py
Comment on lines -409 to +407
if grid.session_on:
self.remove_grid_session(previous_args.get('session_key') or grid.session_key)
self.remove_grid_session(grid.default_session_key)
self.remove_grid_session(previous_args.get('session_key') or grid.session_key)
self.remove_grid_session(grid.default_session_key)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function WebSessionArgsLoader.get_args refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -458 to +464
else:
# if its not the string 'auto' and its not a formencode validator, assume
# its a callable and wrap with a formencode validator
if not hasattr(self.value_modifier, 'to_python'):
if not hasattr(self.value_modifier, '__call__'):
raise TypeError(
_('value_modifier must be the string "auto", have a "to_python" attribute, '
'or be a callable')
)
self.value_modifier = feval.Wrapper(to_python=self.value_modifier)
elif not hasattr(self.value_modifier, 'to_python'):
if not hasattr(self.value_modifier, '__call__'):
raise TypeError(
_('value_modifier must be the string "auto", have a "to_python" attribute, '
'or be a callable')
)
self.value_modifier = feval.Wrapper(to_python=self.value_modifier)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function OptionsFilterBase.setup_validator refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -510 to +511
if self.op in (ops.is_, ops.not_is) and not (self.value1 or self.default_op):
self.op = None
if (
self.op in (ops.is_, ops.not_is)
and not self.value1
and not self.default_op
): self.op = None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function OptionsFilterBase.set refactored with the following changes:

  • Simplify logical expression using De Morgan identities (de-morgan)

Comment threadwebgrid/filters.py
else:
# !!!: localize
target_date = first_day if first_day else last_day
target_date = first_day or last_day

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function _DateMixin.description refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -1241 to +1247
if is_value2:
if self.op in (ops.between, ops.not_between):
value = ''
else:
return None
else:
if not is_value2:
raise formencode.Invalid(gettext('invalid date'), value, self)

if self.op in (ops.between, ops.not_between):
value = ''
else:
return None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateFilter.process refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -1432 to +1437
if is_value2:
if self.op in (ops.between, ops.not_between):
value = ''
else:
return None
else:
if not is_value2:
raise formencode.Invalid(gettext('invalid date'), value, self)

if self.op in (ops.between, ops.not_between):
value = ''
else:
return None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateTimeFilter.process refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
return True

return False
return any(col.group for col in self.columns)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function GroupMixin.has_groups refactored with the following changes:

  • Use any() instead of for loop (use-any)

Comment threadwebgrid/renderers.py
Comment on lines -395 to +394
rows = []
for col in six.itervalues(self.grid.filtered_cols):
rows.append(self.filtering_table_row(col))
rows = [
self.filtering_table_row(col)
for col in six.itervalues(self.grid.filtered_cols)
]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.filtering_fields refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
Comment on lines +438 to +435
if not filter.is_display_active:
current_selected = ''
else:
current_selected = filter.op
current_selected = '' if not filter.is_display_active else filter.op

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function `HTML.filtering_col_op_selectz refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -843 to +837
headings = []
for col in self.columns:
headings.append(self.table_th(col))
headings = [self.table_th(col) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_column_headings refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -890 to +882
url_args = {}
url_args['dgreset'] = None
url_args['sort2'] = None
url_args['sort3'] = None
url_args = {'dgreset': None, 'sort2': None, 'sort3': None}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_th refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -956 to +945
if (rownum + 1) % 2 == 1:
row_hah.class_ += 'odd'
else:
row_hah.class_ += 'even'
row_hah.class_ += 'odd' if (rownum + 1) % 2 == 1 else 'even'

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_tr_styler refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -984 to +970
cells = []
for col in self.columns:
cells.append(self.table_td(col, record))
cells = [self.table_td(col, record) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_tr refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
Comment on lines +1011 to +999
buffer_hah = {
'colspan': colspan,
'class': 'totals-label'
}
if colspan:
buffer_hah = {
'colspan': colspan,
'class': 'totals-label'
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_totals refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1133 to +1126
url_args = {}
url_args['perpage'] = None
url_args['onpage'] = None
url_args['search'] = None
url_args['sort1'] = None
url_args['sort2'] = None
url_args['sort3'] = None
url_args['export_to'] = None
url_args['datagrid-add-filter'] = None
url_args = {
'perpage': None,
'onpage': None,
'search': None,
'sort1': None,
'sort2': None,
'sort3': None,
'export_to': None,
'datagrid-add-filter': None,
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.reset_url refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1671 to +1656
headings = []
for col in self.columns:
headings.append(col.label)
headings = [col.label for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CSV.body_headings refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1686 to +1669
row = []
for col in self.columns:
row.append(col.render('csv', record))
row = [col.render('csv', record) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CSV.body_records refactored with the following changes:

@rsyring
rsyringforce-pushed the master branch 3 times, most recently from 5d42130 to 97cc369CompareAugust 6, 2025 22:09
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@SourceryAI
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Sourcery suggested refactorings - #152

Open
SourceryAI wants to merge 4 commits into
level12:masterfrom
SourceryAI:sourcery_suggested_refactorings
Open

Sourcery suggested refactorings#152
SourceryAI wants to merge 4 commits into
level12:masterfrom
SourceryAI:sourcery_suggested_refactorings

Conversation

@SourceryAI

Copy link
Copy Markdown

Sourcery refactored this code to make it cleaner and more readable.

If you want Sourcery to review the full project or all new pull requests, add Sourcery to your repo.

We try to only open PRs that are helpful. If this isn't helpful or you have any feedback for us - please let us know!

Comment threadwebgrid/__init__.py Outdated
column.xlwt_stymat = self.xlwt_stymat_init()
else:
column.xlwt_stymat = None
column.xlwt_stymat = self.xlwt_stymat_init() if xlwt is not None else None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function Column.new_instance refactored with the following changes:

Comment threadwebgrid/__init__.py Outdated
Comment on lines +557 to +559
if arrow and isinstance(data, arrow.Arrow):
if data.strftime(format) == format:
return data.format(format)
if (
arrow
and isinstance(data, arrow.Arrow)
and data.strftime(format) == format
):
return data.format(format)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateColumnBase._format_datetime refactored with the following changes:

Comment threadwebgrid/__init__.py
Comment on lines -1589 to +1590
else:
sort_display.append(col.key)
redundant.append(col.key)
sort_display.append(col.key)
redundant.append(col.key)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function BaseGrid.query_sort refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
class CustomJsonEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime.date) or isinstance(obj, arrow.Arrow):
if isinstance(obj, (datetime.date, arrow.Arrow)):

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CustomJsonEncoder.default refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
current_args = self.json_to_args(data)
else:
current_args = MultiDict()
current_args = self.json_to_args(data) if data else MultiDict()

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function RequestJsonLoader.get_args refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
Comment on lines +344 to +341
web_session['dgsessions'] = dict()
web_session['dgsessions'] = {}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function WebSessionArgsLoader.save_session_store refactored with the following changes:

Comment threadwebgrid/extensions.py
Comment on lines -409 to +407
if grid.session_on:
self.remove_grid_session(previous_args.get('session_key') or grid.session_key)
self.remove_grid_session(grid.default_session_key)
self.remove_grid_session(previous_args.get('session_key') or grid.session_key)
self.remove_grid_session(grid.default_session_key)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function WebSessionArgsLoader.get_args refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -458 to +464
else:
# if its not the string 'auto' and its not a formencode validator, assume
# its a callable and wrap with a formencode validator
if not hasattr(self.value_modifier, 'to_python'):
if not hasattr(self.value_modifier, '__call__'):
raise TypeError(
_('value_modifier must be the string "auto", have a "to_python" attribute, '
'or be a callable')
)
self.value_modifier = feval.Wrapper(to_python=self.value_modifier)
elif not hasattr(self.value_modifier, 'to_python'):
if not hasattr(self.value_modifier, '__call__'):
raise TypeError(
_('value_modifier must be the string "auto", have a "to_python" attribute, '
'or be a callable')
)
self.value_modifier = feval.Wrapper(to_python=self.value_modifier)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function OptionsFilterBase.setup_validator refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -510 to +511
if self.op in (ops.is_, ops.not_is) and not (self.value1 or self.default_op):
self.op = None
if (
self.op in (ops.is_, ops.not_is)
and not self.value1
and not self.default_op
): self.op = None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function OptionsFilterBase.set refactored with the following changes:

  • Simplify logical expression using De Morgan identities (de-morgan)

Comment threadwebgrid/filters.py
else:
# !!!: localize
target_date = first_day if first_day else last_day
target_date = first_day or last_day

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function _DateMixin.description refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -1241 to +1247
if is_value2:
if self.op in (ops.between, ops.not_between):
value = ''
else:
return None
else:
if not is_value2:
raise formencode.Invalid(gettext('invalid date'), value, self)

if self.op in (ops.between, ops.not_between):
value = ''
else:
return None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateFilter.process refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -1432 to +1437
if is_value2:
if self.op in (ops.between, ops.not_between):
value = ''
else:
return None
else:
if not is_value2:
raise formencode.Invalid(gettext('invalid date'), value, self)

if self.op in (ops.between, ops.not_between):
value = ''
else:
return None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateTimeFilter.process refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
return True

return False
return any(col.group for col in self.columns)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function GroupMixin.has_groups refactored with the following changes:

  • Use any() instead of for loop (use-any)

Comment threadwebgrid/renderers.py
Comment on lines -395 to +394
rows = []
for col in six.itervalues(self.grid.filtered_cols):
rows.append(self.filtering_table_row(col))
rows = [
self.filtering_table_row(col)
for col in six.itervalues(self.grid.filtered_cols)
]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.filtering_fields refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
Comment on lines +438 to +435
if not filter.is_display_active:
current_selected = ''
else:
current_selected = filter.op
current_selected = '' if not filter.is_display_active else filter.op

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function `HTML.filtering_col_op_selectz refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -843 to +837
headings = []
for col in self.columns:
headings.append(self.table_th(col))
headings = [self.table_th(col) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_column_headings refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -890 to +882
url_args = {}
url_args['dgreset'] = None
url_args['sort2'] = None
url_args['sort3'] = None
url_args = {'dgreset': None, 'sort2': None, 'sort3': None}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_th refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -956 to +945
if (rownum + 1) % 2 == 1:
row_hah.class_ += 'odd'
else:
row_hah.class_ += 'even'
row_hah.class_ += 'odd' if (rownum + 1) % 2 == 1 else 'even'

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_tr_styler refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -984 to +970
cells = []
for col in self.columns:
cells.append(self.table_td(col, record))
cells = [self.table_td(col, record) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_tr refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
Comment on lines +1011 to +999
buffer_hah = {
'colspan': colspan,
'class': 'totals-label'
}
if colspan:
buffer_hah = {
'colspan': colspan,
'class': 'totals-label'
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_totals refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1133 to +1126
url_args = {}
url_args['perpage'] = None
url_args['onpage'] = None
url_args['search'] = None
url_args['sort1'] = None
url_args['sort2'] = None
url_args['sort3'] = None
url_args['export_to'] = None
url_args['datagrid-add-filter'] = None
url_args = {
'perpage': None,
'onpage': None,
'search': None,
'sort1': None,
'sort2': None,
'sort3': None,
'export_to': None,
'datagrid-add-filter': None,
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.reset_url refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1671 to +1656
headings = []
for col in self.columns:
headings.append(col.label)
headings = [col.label for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CSV.body_headings refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1686 to +1669
row = []
for col in self.columns:
row.append(col.render('csv', record))
row = [col.render('csv', record) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CSV.body_records refactored with the following changes:

@rsyring
rsyringforce-pushed the master branch 3 times, most recently from 5d42130 to 97cc369CompareAugust 6, 2025 22:09
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@SourceryAI
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Sourcery suggested refactorings - #152

Open
SourceryAI wants to merge 4 commits into
level12:masterfrom
SourceryAI:sourcery_suggested_refactorings
Open

Sourcery suggested refactorings#152
SourceryAI wants to merge 4 commits into
level12:masterfrom
SourceryAI:sourcery_suggested_refactorings

Conversation

@SourceryAI

Copy link
Copy Markdown

Sourcery refactored this code to make it cleaner and more readable.

If you want Sourcery to review the full project or all new pull requests, add Sourcery to your repo.

We try to only open PRs that are helpful. If this isn't helpful or you have any feedback for us - please let us know!

Comment threadwebgrid/__init__.py Outdated
column.xlwt_stymat = self.xlwt_stymat_init()
else:
column.xlwt_stymat = None
column.xlwt_stymat = self.xlwt_stymat_init() if xlwt is not None else None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function Column.new_instance refactored with the following changes:

Comment threadwebgrid/__init__.py Outdated
Comment on lines +557 to +559
if arrow and isinstance(data, arrow.Arrow):
if data.strftime(format) == format:
return data.format(format)
if (
arrow
and isinstance(data, arrow.Arrow)
and data.strftime(format) == format
):
return data.format(format)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateColumnBase._format_datetime refactored with the following changes:

Comment threadwebgrid/__init__.py
Comment on lines -1589 to +1590
else:
sort_display.append(col.key)
redundant.append(col.key)
sort_display.append(col.key)
redundant.append(col.key)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function BaseGrid.query_sort refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
class CustomJsonEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime.date) or isinstance(obj, arrow.Arrow):
if isinstance(obj, (datetime.date, arrow.Arrow)):

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CustomJsonEncoder.default refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
current_args = self.json_to_args(data)
else:
current_args = MultiDict()
current_args = self.json_to_args(data) if data else MultiDict()

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function RequestJsonLoader.get_args refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
Comment on lines +344 to +341
web_session['dgsessions'] = dict()
web_session['dgsessions'] = {}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function WebSessionArgsLoader.save_session_store refactored with the following changes:

Comment threadwebgrid/extensions.py
Comment on lines -409 to +407
if grid.session_on:
self.remove_grid_session(previous_args.get('session_key') or grid.session_key)
self.remove_grid_session(grid.default_session_key)
self.remove_grid_session(previous_args.get('session_key') or grid.session_key)
self.remove_grid_session(grid.default_session_key)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function WebSessionArgsLoader.get_args refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -458 to +464
else:
# if its not the string 'auto' and its not a formencode validator, assume
# its a callable and wrap with a formencode validator
if not hasattr(self.value_modifier, 'to_python'):
if not hasattr(self.value_modifier, '__call__'):
raise TypeError(
_('value_modifier must be the string "auto", have a "to_python" attribute, '
'or be a callable')
)
self.value_modifier = feval.Wrapper(to_python=self.value_modifier)
elif not hasattr(self.value_modifier, 'to_python'):
if not hasattr(self.value_modifier, '__call__'):
raise TypeError(
_('value_modifier must be the string "auto", have a "to_python" attribute, '
'or be a callable')
)
self.value_modifier = feval.Wrapper(to_python=self.value_modifier)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function OptionsFilterBase.setup_validator refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -510 to +511
if self.op in (ops.is_, ops.not_is) and not (self.value1 or self.default_op):
self.op = None
if (
self.op in (ops.is_, ops.not_is)
and not self.value1
and not self.default_op
): self.op = None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function OptionsFilterBase.set refactored with the following changes:

  • Simplify logical expression using De Morgan identities (de-morgan)

Comment threadwebgrid/filters.py
else:
# !!!: localize
target_date = first_day if first_day else last_day
target_date = first_day or last_day

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function _DateMixin.description refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -1241 to +1247
if is_value2:
if self.op in (ops.between, ops.not_between):
value = ''
else:
return None
else:
if not is_value2:
raise formencode.Invalid(gettext('invalid date'), value, self)

if self.op in (ops.between, ops.not_between):
value = ''
else:
return None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateFilter.process refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -1432 to +1437
if is_value2:
if self.op in (ops.between, ops.not_between):
value = ''
else:
return None
else:
if not is_value2:
raise formencode.Invalid(gettext('invalid date'), value, self)

if self.op in (ops.between, ops.not_between):
value = ''
else:
return None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateTimeFilter.process refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
return True

return False
return any(col.group for col in self.columns)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function GroupMixin.has_groups refactored with the following changes:

  • Use any() instead of for loop (use-any)

Comment threadwebgrid/renderers.py
Comment on lines -395 to +394
rows = []
for col in six.itervalues(self.grid.filtered_cols):
rows.append(self.filtering_table_row(col))
rows = [
self.filtering_table_row(col)
for col in six.itervalues(self.grid.filtered_cols)
]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.filtering_fields refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
Comment on lines +438 to +435
if not filter.is_display_active:
current_selected = ''
else:
current_selected = filter.op
current_selected = '' if not filter.is_display_active else filter.op

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function `HTML.filtering_col_op_selectz refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -843 to +837
headings = []
for col in self.columns:
headings.append(self.table_th(col))
headings = [self.table_th(col) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_column_headings refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -890 to +882
url_args = {}
url_args['dgreset'] = None
url_args['sort2'] = None
url_args['sort3'] = None
url_args = {'dgreset': None, 'sort2': None, 'sort3': None}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_th refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -956 to +945
if (rownum + 1) % 2 == 1:
row_hah.class_ += 'odd'
else:
row_hah.class_ += 'even'
row_hah.class_ += 'odd' if (rownum + 1) % 2 == 1 else 'even'

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_tr_styler refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -984 to +970
cells = []
for col in self.columns:
cells.append(self.table_td(col, record))
cells = [self.table_td(col, record) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_tr refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
Comment on lines +1011 to +999
buffer_hah = {
'colspan': colspan,
'class': 'totals-label'
}
if colspan:
buffer_hah = {
'colspan': colspan,
'class': 'totals-label'
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_totals refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1133 to +1126
url_args = {}
url_args['perpage'] = None
url_args['onpage'] = None
url_args['search'] = None
url_args['sort1'] = None
url_args['sort2'] = None
url_args['sort3'] = None
url_args['export_to'] = None
url_args['datagrid-add-filter'] = None
url_args = {
'perpage': None,
'onpage': None,
'search': None,
'sort1': None,
'sort2': None,
'sort3': None,
'export_to': None,
'datagrid-add-filter': None,
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.reset_url refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1671 to +1656
headings = []
for col in self.columns:
headings.append(col.label)
headings = [col.label for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CSV.body_headings refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1686 to +1669
row = []
for col in self.columns:
row.append(col.render('csv', record))
row = [col.render('csv', record) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CSV.body_records refactored with the following changes:

@rsyring
rsyringforce-pushed the master branch 3 times, most recently from 5d42130 to 97cc369CompareAugust 6, 2025 22:09
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@SourceryAI
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Sourcery suggested refactorings - #152

Open
SourceryAI wants to merge 4 commits into
level12:masterfrom
SourceryAI:sourcery_suggested_refactorings
Open

Sourcery suggested refactorings#152
SourceryAI wants to merge 4 commits into
level12:masterfrom
SourceryAI:sourcery_suggested_refactorings

Conversation

@SourceryAI

Copy link
Copy Markdown

Sourcery refactored this code to make it cleaner and more readable.

If you want Sourcery to review the full project or all new pull requests, add Sourcery to your repo.

We try to only open PRs that are helpful. If this isn't helpful or you have any feedback for us - please let us know!

Comment threadwebgrid/__init__.py Outdated
column.xlwt_stymat = self.xlwt_stymat_init()
else:
column.xlwt_stymat = None
column.xlwt_stymat = self.xlwt_stymat_init() if xlwt is not None else None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function Column.new_instance refactored with the following changes:

Comment threadwebgrid/__init__.py Outdated
Comment on lines +557 to +559
if arrow and isinstance(data, arrow.Arrow):
if data.strftime(format) == format:
return data.format(format)
if (
arrow
and isinstance(data, arrow.Arrow)
and data.strftime(format) == format
):
return data.format(format)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateColumnBase._format_datetime refactored with the following changes:

Comment threadwebgrid/__init__.py
Comment on lines -1589 to +1590
else:
sort_display.append(col.key)
redundant.append(col.key)
sort_display.append(col.key)
redundant.append(col.key)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function BaseGrid.query_sort refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
class CustomJsonEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime.date) or isinstance(obj, arrow.Arrow):
if isinstance(obj, (datetime.date, arrow.Arrow)):

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CustomJsonEncoder.default refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
current_args = self.json_to_args(data)
else:
current_args = MultiDict()
current_args = self.json_to_args(data) if data else MultiDict()

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function RequestJsonLoader.get_args refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
Comment on lines +344 to +341
web_session['dgsessions'] = dict()
web_session['dgsessions'] = {}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function WebSessionArgsLoader.save_session_store refactored with the following changes:

Comment threadwebgrid/extensions.py
Comment on lines -409 to +407
if grid.session_on:
self.remove_grid_session(previous_args.get('session_key') or grid.session_key)
self.remove_grid_session(grid.default_session_key)
self.remove_grid_session(previous_args.get('session_key') or grid.session_key)
self.remove_grid_session(grid.default_session_key)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function WebSessionArgsLoader.get_args refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -458 to +464
else:
# if its not the string 'auto' and its not a formencode validator, assume
# its a callable and wrap with a formencode validator
if not hasattr(self.value_modifier, 'to_python'):
if not hasattr(self.value_modifier, '__call__'):
raise TypeError(
_('value_modifier must be the string "auto", have a "to_python" attribute, '
'or be a callable')
)
self.value_modifier = feval.Wrapper(to_python=self.value_modifier)
elif not hasattr(self.value_modifier, 'to_python'):
if not hasattr(self.value_modifier, '__call__'):
raise TypeError(
_('value_modifier must be the string "auto", have a "to_python" attribute, '
'or be a callable')
)
self.value_modifier = feval.Wrapper(to_python=self.value_modifier)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function OptionsFilterBase.setup_validator refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -510 to +511
if self.op in (ops.is_, ops.not_is) and not (self.value1 or self.default_op):
self.op = None
if (
self.op in (ops.is_, ops.not_is)
and not self.value1
and not self.default_op
): self.op = None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function OptionsFilterBase.set refactored with the following changes:

  • Simplify logical expression using De Morgan identities (de-morgan)

Comment threadwebgrid/filters.py
else:
# !!!: localize
target_date = first_day if first_day else last_day
target_date = first_day or last_day

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function _DateMixin.description refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -1241 to +1247
if is_value2:
if self.op in (ops.between, ops.not_between):
value = ''
else:
return None
else:
if not is_value2:
raise formencode.Invalid(gettext('invalid date'), value, self)

if self.op in (ops.between, ops.not_between):
value = ''
else:
return None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateFilter.process refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -1432 to +1437
if is_value2:
if self.op in (ops.between, ops.not_between):
value = ''
else:
return None
else:
if not is_value2:
raise formencode.Invalid(gettext('invalid date'), value, self)

if self.op in (ops.between, ops.not_between):
value = ''
else:
return None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateTimeFilter.process refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
return True

return False
return any(col.group for col in self.columns)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function GroupMixin.has_groups refactored with the following changes:

  • Use any() instead of for loop (use-any)

Comment threadwebgrid/renderers.py
Comment on lines -395 to +394
rows = []
for col in six.itervalues(self.grid.filtered_cols):
rows.append(self.filtering_table_row(col))
rows = [
self.filtering_table_row(col)
for col in six.itervalues(self.grid.filtered_cols)
]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.filtering_fields refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
Comment on lines +438 to +435
if not filter.is_display_active:
current_selected = ''
else:
current_selected = filter.op
current_selected = '' if not filter.is_display_active else filter.op

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function `HTML.filtering_col_op_selectz refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -843 to +837
headings = []
for col in self.columns:
headings.append(self.table_th(col))
headings = [self.table_th(col) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_column_headings refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -890 to +882
url_args = {}
url_args['dgreset'] = None
url_args['sort2'] = None
url_args['sort3'] = None
url_args = {'dgreset': None, 'sort2': None, 'sort3': None}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_th refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -956 to +945
if (rownum + 1) % 2 == 1:
row_hah.class_ += 'odd'
else:
row_hah.class_ += 'even'
row_hah.class_ += 'odd' if (rownum + 1) % 2 == 1 else 'even'

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_tr_styler refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -984 to +970
cells = []
for col in self.columns:
cells.append(self.table_td(col, record))
cells = [self.table_td(col, record) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_tr refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
Comment on lines +1011 to +999
buffer_hah = {
'colspan': colspan,
'class': 'totals-label'
}
if colspan:
buffer_hah = {
'colspan': colspan,
'class': 'totals-label'
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_totals refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1133 to +1126
url_args = {}
url_args['perpage'] = None
url_args['onpage'] = None
url_args['search'] = None
url_args['sort1'] = None
url_args['sort2'] = None
url_args['sort3'] = None
url_args['export_to'] = None
url_args['datagrid-add-filter'] = None
url_args = {
'perpage': None,
'onpage': None,
'search': None,
'sort1': None,
'sort2': None,
'sort3': None,
'export_to': None,
'datagrid-add-filter': None,
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.reset_url refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1671 to +1656
headings = []
for col in self.columns:
headings.append(col.label)
headings = [col.label for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CSV.body_headings refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1686 to +1669
row = []
for col in self.columns:
row.append(col.render('csv', record))
row = [col.render('csv', record) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CSV.body_records refactored with the following changes:

@rsyring
rsyringforce-pushed the master branch 3 times, most recently from 5d42130 to 97cc369CompareAugust 6, 2025 22:09
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@SourceryAI
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Sourcery suggested refactorings - #152

Open
SourceryAI wants to merge 4 commits into
level12:masterfrom
SourceryAI:sourcery_suggested_refactorings
Open

Sourcery suggested refactorings#152
SourceryAI wants to merge 4 commits into
level12:masterfrom
SourceryAI:sourcery_suggested_refactorings

Conversation

@SourceryAI

Copy link
Copy Markdown

Sourcery refactored this code to make it cleaner and more readable.

If you want Sourcery to review the full project or all new pull requests, add Sourcery to your repo.

We try to only open PRs that are helpful. If this isn't helpful or you have any feedback for us - please let us know!

Comment threadwebgrid/__init__.py Outdated
column.xlwt_stymat = self.xlwt_stymat_init()
else:
column.xlwt_stymat = None
column.xlwt_stymat = self.xlwt_stymat_init() if xlwt is not None else None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function Column.new_instance refactored with the following changes:

Comment threadwebgrid/__init__.py Outdated
Comment on lines +557 to +559
if arrow and isinstance(data, arrow.Arrow):
if data.strftime(format) == format:
return data.format(format)
if (
arrow
and isinstance(data, arrow.Arrow)
and data.strftime(format) == format
):
return data.format(format)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateColumnBase._format_datetime refactored with the following changes:

Comment threadwebgrid/__init__.py
Comment on lines -1589 to +1590
else:
sort_display.append(col.key)
redundant.append(col.key)
sort_display.append(col.key)
redundant.append(col.key)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function BaseGrid.query_sort refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
class CustomJsonEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime.date) or isinstance(obj, arrow.Arrow):
if isinstance(obj, (datetime.date, arrow.Arrow)):

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CustomJsonEncoder.default refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
current_args = self.json_to_args(data)
else:
current_args = MultiDict()
current_args = self.json_to_args(data) if data else MultiDict()

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function RequestJsonLoader.get_args refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
Comment on lines +344 to +341
web_session['dgsessions'] = dict()
web_session['dgsessions'] = {}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function WebSessionArgsLoader.save_session_store refactored with the following changes:

Comment threadwebgrid/extensions.py
Comment on lines -409 to +407
if grid.session_on:
self.remove_grid_session(previous_args.get('session_key') or grid.session_key)
self.remove_grid_session(grid.default_session_key)
self.remove_grid_session(previous_args.get('session_key') or grid.session_key)
self.remove_grid_session(grid.default_session_key)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function WebSessionArgsLoader.get_args refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -458 to +464
else:
# if its not the string 'auto' and its not a formencode validator, assume
# its a callable and wrap with a formencode validator
if not hasattr(self.value_modifier, 'to_python'):
if not hasattr(self.value_modifier, '__call__'):
raise TypeError(
_('value_modifier must be the string "auto", have a "to_python" attribute, '
'or be a callable')
)
self.value_modifier = feval.Wrapper(to_python=self.value_modifier)
elif not hasattr(self.value_modifier, 'to_python'):
if not hasattr(self.value_modifier, '__call__'):
raise TypeError(
_('value_modifier must be the string "auto", have a "to_python" attribute, '
'or be a callable')
)
self.value_modifier = feval.Wrapper(to_python=self.value_modifier)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function OptionsFilterBase.setup_validator refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -510 to +511
if self.op in (ops.is_, ops.not_is) and not (self.value1 or self.default_op):
self.op = None
if (
self.op in (ops.is_, ops.not_is)
and not self.value1
and not self.default_op
): self.op = None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function OptionsFilterBase.set refactored with the following changes:

  • Simplify logical expression using De Morgan identities (de-morgan)

Comment threadwebgrid/filters.py
else:
# !!!: localize
target_date = first_day if first_day else last_day
target_date = first_day or last_day

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function _DateMixin.description refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -1241 to +1247
if is_value2:
if self.op in (ops.between, ops.not_between):
value = ''
else:
return None
else:
if not is_value2:
raise formencode.Invalid(gettext('invalid date'), value, self)

if self.op in (ops.between, ops.not_between):
value = ''
else:
return None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateFilter.process refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -1432 to +1437
if is_value2:
if self.op in (ops.between, ops.not_between):
value = ''
else:
return None
else:
if not is_value2:
raise formencode.Invalid(gettext('invalid date'), value, self)

if self.op in (ops.between, ops.not_between):
value = ''
else:
return None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateTimeFilter.process refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
return True

return False
return any(col.group for col in self.columns)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function GroupMixin.has_groups refactored with the following changes:

  • Use any() instead of for loop (use-any)

Comment threadwebgrid/renderers.py
Comment on lines -395 to +394
rows = []
for col in six.itervalues(self.grid.filtered_cols):
rows.append(self.filtering_table_row(col))
rows = [
self.filtering_table_row(col)
for col in six.itervalues(self.grid.filtered_cols)
]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.filtering_fields refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
Comment on lines +438 to +435
if not filter.is_display_active:
current_selected = ''
else:
current_selected = filter.op
current_selected = '' if not filter.is_display_active else filter.op

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function `HTML.filtering_col_op_selectz refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -843 to +837
headings = []
for col in self.columns:
headings.append(self.table_th(col))
headings = [self.table_th(col) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_column_headings refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -890 to +882
url_args = {}
url_args['dgreset'] = None
url_args['sort2'] = None
url_args['sort3'] = None
url_args = {'dgreset': None, 'sort2': None, 'sort3': None}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_th refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -956 to +945
if (rownum + 1) % 2 == 1:
row_hah.class_ += 'odd'
else:
row_hah.class_ += 'even'
row_hah.class_ += 'odd' if (rownum + 1) % 2 == 1 else 'even'

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_tr_styler refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -984 to +970
cells = []
for col in self.columns:
cells.append(self.table_td(col, record))
cells = [self.table_td(col, record) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_tr refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
Comment on lines +1011 to +999
buffer_hah = {
'colspan': colspan,
'class': 'totals-label'
}
if colspan:
buffer_hah = {
'colspan': colspan,
'class': 'totals-label'
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_totals refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1133 to +1126
url_args = {}
url_args['perpage'] = None
url_args['onpage'] = None
url_args['search'] = None
url_args['sort1'] = None
url_args['sort2'] = None
url_args['sort3'] = None
url_args['export_to'] = None
url_args['datagrid-add-filter'] = None
url_args = {
'perpage': None,
'onpage': None,
'search': None,
'sort1': None,
'sort2': None,
'sort3': None,
'export_to': None,
'datagrid-add-filter': None,
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.reset_url refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1671 to +1656
headings = []
for col in self.columns:
headings.append(col.label)
headings = [col.label for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CSV.body_headings refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1686 to +1669
row = []
for col in self.columns:
row.append(col.render('csv', record))
row = [col.render('csv', record) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CSV.body_records refactored with the following changes:

@rsyring
rsyringforce-pushed the master branch 3 times, most recently from 5d42130 to 97cc369CompareAugust 6, 2025 22:09
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@SourceryAI
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Sourcery suggested refactorings - #152

Open
SourceryAI wants to merge 4 commits into
level12:masterfrom
SourceryAI:sourcery_suggested_refactorings
Open

Sourcery suggested refactorings#152
SourceryAI wants to merge 4 commits into
level12:masterfrom
SourceryAI:sourcery_suggested_refactorings

Conversation

@SourceryAI

Copy link
Copy Markdown

Sourcery refactored this code to make it cleaner and more readable.

If you want Sourcery to review the full project or all new pull requests, add Sourcery to your repo.

We try to only open PRs that are helpful. If this isn't helpful or you have any feedback for us - please let us know!

Comment threadwebgrid/__init__.py Outdated
column.xlwt_stymat = self.xlwt_stymat_init()
else:
column.xlwt_stymat = None
column.xlwt_stymat = self.xlwt_stymat_init() if xlwt is not None else None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function Column.new_instance refactored with the following changes:

Comment threadwebgrid/__init__.py Outdated
Comment on lines +557 to +559
if arrow and isinstance(data, arrow.Arrow):
if data.strftime(format) == format:
return data.format(format)
if (
arrow
and isinstance(data, arrow.Arrow)
and data.strftime(format) == format
):
return data.format(format)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateColumnBase._format_datetime refactored with the following changes:

Comment threadwebgrid/__init__.py
Comment on lines -1589 to +1590
else:
sort_display.append(col.key)
redundant.append(col.key)
sort_display.append(col.key)
redundant.append(col.key)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function BaseGrid.query_sort refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
class CustomJsonEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime.date) or isinstance(obj, arrow.Arrow):
if isinstance(obj, (datetime.date, arrow.Arrow)):

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CustomJsonEncoder.default refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
current_args = self.json_to_args(data)
else:
current_args = MultiDict()
current_args = self.json_to_args(data) if data else MultiDict()

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function RequestJsonLoader.get_args refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
Comment on lines +344 to +341
web_session['dgsessions'] = dict()
web_session['dgsessions'] = {}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function WebSessionArgsLoader.save_session_store refactored with the following changes:

Comment threadwebgrid/extensions.py
Comment on lines -409 to +407
if grid.session_on:
self.remove_grid_session(previous_args.get('session_key') or grid.session_key)
self.remove_grid_session(grid.default_session_key)
self.remove_grid_session(previous_args.get('session_key') or grid.session_key)
self.remove_grid_session(grid.default_session_key)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function WebSessionArgsLoader.get_args refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -458 to +464
else:
# if its not the string 'auto' and its not a formencode validator, assume
# its a callable and wrap with a formencode validator
if not hasattr(self.value_modifier, 'to_python'):
if not hasattr(self.value_modifier, '__call__'):
raise TypeError(
_('value_modifier must be the string "auto", have a "to_python" attribute, '
'or be a callable')
)
self.value_modifier = feval.Wrapper(to_python=self.value_modifier)
elif not hasattr(self.value_modifier, 'to_python'):
if not hasattr(self.value_modifier, '__call__'):
raise TypeError(
_('value_modifier must be the string "auto", have a "to_python" attribute, '
'or be a callable')
)
self.value_modifier = feval.Wrapper(to_python=self.value_modifier)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function OptionsFilterBase.setup_validator refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -510 to +511
if self.op in (ops.is_, ops.not_is) and not (self.value1 or self.default_op):
self.op = None
if (
self.op in (ops.is_, ops.not_is)
and not self.value1
and not self.default_op
): self.op = None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function OptionsFilterBase.set refactored with the following changes:

  • Simplify logical expression using De Morgan identities (de-morgan)

Comment threadwebgrid/filters.py
else:
# !!!: localize
target_date = first_day if first_day else last_day
target_date = first_day or last_day

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function _DateMixin.description refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -1241 to +1247
if is_value2:
if self.op in (ops.between, ops.not_between):
value = ''
else:
return None
else:
if not is_value2:
raise formencode.Invalid(gettext('invalid date'), value, self)

if self.op in (ops.between, ops.not_between):
value = ''
else:
return None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateFilter.process refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -1432 to +1437
if is_value2:
if self.op in (ops.between, ops.not_between):
value = ''
else:
return None
else:
if not is_value2:
raise formencode.Invalid(gettext('invalid date'), value, self)

if self.op in (ops.between, ops.not_between):
value = ''
else:
return None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateTimeFilter.process refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
return True

return False
return any(col.group for col in self.columns)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function GroupMixin.has_groups refactored with the following changes:

  • Use any() instead of for loop (use-any)

Comment threadwebgrid/renderers.py
Comment on lines -395 to +394
rows = []
for col in six.itervalues(self.grid.filtered_cols):
rows.append(self.filtering_table_row(col))
rows = [
self.filtering_table_row(col)
for col in six.itervalues(self.grid.filtered_cols)
]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.filtering_fields refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
Comment on lines +438 to +435
if not filter.is_display_active:
current_selected = ''
else:
current_selected = filter.op
current_selected = '' if not filter.is_display_active else filter.op

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function `HTML.filtering_col_op_selectz refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -843 to +837
headings = []
for col in self.columns:
headings.append(self.table_th(col))
headings = [self.table_th(col) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_column_headings refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -890 to +882
url_args = {}
url_args['dgreset'] = None
url_args['sort2'] = None
url_args['sort3'] = None
url_args = {'dgreset': None, 'sort2': None, 'sort3': None}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_th refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -956 to +945
if (rownum + 1) % 2 == 1:
row_hah.class_ += 'odd'
else:
row_hah.class_ += 'even'
row_hah.class_ += 'odd' if (rownum + 1) % 2 == 1 else 'even'

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_tr_styler refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -984 to +970
cells = []
for col in self.columns:
cells.append(self.table_td(col, record))
cells = [self.table_td(col, record) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_tr refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
Comment on lines +1011 to +999
buffer_hah = {
'colspan': colspan,
'class': 'totals-label'
}
if colspan:
buffer_hah = {
'colspan': colspan,
'class': 'totals-label'
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_totals refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1133 to +1126
url_args = {}
url_args['perpage'] = None
url_args['onpage'] = None
url_args['search'] = None
url_args['sort1'] = None
url_args['sort2'] = None
url_args['sort3'] = None
url_args['export_to'] = None
url_args['datagrid-add-filter'] = None
url_args = {
'perpage': None,
'onpage': None,
'search': None,
'sort1': None,
'sort2': None,
'sort3': None,
'export_to': None,
'datagrid-add-filter': None,
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.reset_url refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1671 to +1656
headings = []
for col in self.columns:
headings.append(col.label)
headings = [col.label for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CSV.body_headings refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1686 to +1669
row = []
for col in self.columns:
row.append(col.render('csv', record))
row = [col.render('csv', record) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CSV.body_records refactored with the following changes:

@rsyring
rsyringforce-pushed the master branch 3 times, most recently from 5d42130 to 97cc369CompareAugust 6, 2025 22:09
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@SourceryAI
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Sourcery suggested refactorings - #152

Open
SourceryAI wants to merge 4 commits into
level12:masterfrom
SourceryAI:sourcery_suggested_refactorings
Open

Sourcery suggested refactorings#152
SourceryAI wants to merge 4 commits into
level12:masterfrom
SourceryAI:sourcery_suggested_refactorings

Conversation

@SourceryAI

Copy link
Copy Markdown

Sourcery refactored this code to make it cleaner and more readable.

If you want Sourcery to review the full project or all new pull requests, add Sourcery to your repo.

We try to only open PRs that are helpful. If this isn't helpful or you have any feedback for us - please let us know!

Comment threadwebgrid/__init__.py Outdated
column.xlwt_stymat = self.xlwt_stymat_init()
else:
column.xlwt_stymat = None
column.xlwt_stymat = self.xlwt_stymat_init() if xlwt is not None else None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function Column.new_instance refactored with the following changes:

Comment threadwebgrid/__init__.py Outdated
Comment on lines +557 to +559
if arrow and isinstance(data, arrow.Arrow):
if data.strftime(format) == format:
return data.format(format)
if (
arrow
and isinstance(data, arrow.Arrow)
and data.strftime(format) == format
):
return data.format(format)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateColumnBase._format_datetime refactored with the following changes:

Comment threadwebgrid/__init__.py
Comment on lines -1589 to +1590
else:
sort_display.append(col.key)
redundant.append(col.key)
sort_display.append(col.key)
redundant.append(col.key)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function BaseGrid.query_sort refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
class CustomJsonEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime.date) or isinstance(obj, arrow.Arrow):
if isinstance(obj, (datetime.date, arrow.Arrow)):

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CustomJsonEncoder.default refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
current_args = self.json_to_args(data)
else:
current_args = MultiDict()
current_args = self.json_to_args(data) if data else MultiDict()

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function RequestJsonLoader.get_args refactored with the following changes:

Comment threadwebgrid/extensions.py Outdated
Comment on lines +344 to +341
web_session['dgsessions'] = dict()
web_session['dgsessions'] = {}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function WebSessionArgsLoader.save_session_store refactored with the following changes:

Comment threadwebgrid/extensions.py
Comment on lines -409 to +407
if grid.session_on:
self.remove_grid_session(previous_args.get('session_key') or grid.session_key)
self.remove_grid_session(grid.default_session_key)
self.remove_grid_session(previous_args.get('session_key') or grid.session_key)
self.remove_grid_session(grid.default_session_key)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function WebSessionArgsLoader.get_args refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -458 to +464
else:
# if its not the string 'auto' and its not a formencode validator, assume
# its a callable and wrap with a formencode validator
if not hasattr(self.value_modifier, 'to_python'):
if not hasattr(self.value_modifier, '__call__'):
raise TypeError(
_('value_modifier must be the string "auto", have a "to_python" attribute, '
'or be a callable')
)
self.value_modifier = feval.Wrapper(to_python=self.value_modifier)
elif not hasattr(self.value_modifier, 'to_python'):
if not hasattr(self.value_modifier, '__call__'):
raise TypeError(
_('value_modifier must be the string "auto", have a "to_python" attribute, '
'or be a callable')
)
self.value_modifier = feval.Wrapper(to_python=self.value_modifier)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function OptionsFilterBase.setup_validator refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -510 to +511
if self.op in (ops.is_, ops.not_is) and not (self.value1 or self.default_op):
self.op = None
if (
self.op in (ops.is_, ops.not_is)
and not self.value1
and not self.default_op
): self.op = None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function OptionsFilterBase.set refactored with the following changes:

  • Simplify logical expression using De Morgan identities (de-morgan)

Comment threadwebgrid/filters.py
else:
# !!!: localize
target_date = first_day if first_day else last_day
target_date = first_day or last_day

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function _DateMixin.description refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -1241 to +1247
if is_value2:
if self.op in (ops.between, ops.not_between):
value = ''
else:
return None
else:
if not is_value2:
raise formencode.Invalid(gettext('invalid date'), value, self)

if self.op in (ops.between, ops.not_between):
value = ''
else:
return None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateFilter.process refactored with the following changes:

Comment threadwebgrid/filters.py
Comment on lines -1432 to +1437
if is_value2:
if self.op in (ops.between, ops.not_between):
value = ''
else:
return None
else:
if not is_value2:
raise formencode.Invalid(gettext('invalid date'), value, self)

if self.op in (ops.between, ops.not_between):
value = ''
else:
return None

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function DateTimeFilter.process refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
return True

return False
return any(col.group for col in self.columns)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function GroupMixin.has_groups refactored with the following changes:

  • Use any() instead of for loop (use-any)

Comment threadwebgrid/renderers.py
Comment on lines -395 to +394
rows = []
for col in six.itervalues(self.grid.filtered_cols):
rows.append(self.filtering_table_row(col))
rows = [
self.filtering_table_row(col)
for col in six.itervalues(self.grid.filtered_cols)
]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.filtering_fields refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
Comment on lines +438 to +435
if not filter.is_display_active:
current_selected = ''
else:
current_selected = filter.op
current_selected = '' if not filter.is_display_active else filter.op

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function `HTML.filtering_col_op_selectz refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -843 to +837
headings = []
for col in self.columns:
headings.append(self.table_th(col))
headings = [self.table_th(col) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_column_headings refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -890 to +882
url_args = {}
url_args['dgreset'] = None
url_args['sort2'] = None
url_args['sort3'] = None
url_args = {'dgreset': None, 'sort2': None, 'sort3': None}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_th refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -956 to +945
if (rownum + 1) % 2 == 1:
row_hah.class_ += 'odd'
else:
row_hah.class_ += 'even'
row_hah.class_ += 'odd' if (rownum + 1) % 2 == 1 else 'even'

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_tr_styler refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -984 to +970
cells = []
for col in self.columns:
cells.append(self.table_td(col, record))
cells = [self.table_td(col, record) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_tr refactored with the following changes:

Comment threadwebgrid/renderers.py Outdated
Comment on lines +1011 to +999
buffer_hah = {
'colspan': colspan,
'class': 'totals-label'
}
if colspan:
buffer_hah = {
'colspan': colspan,
'class': 'totals-label'
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.table_totals refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1133 to +1126
url_args = {}
url_args['perpage'] = None
url_args['onpage'] = None
url_args['search'] = None
url_args['sort1'] = None
url_args['sort2'] = None
url_args['sort3'] = None
url_args['export_to'] = None
url_args['datagrid-add-filter'] = None
url_args = {
'perpage': None,
'onpage': None,
'search': None,
'sort1': None,
'sort2': None,
'sort3': None,
'export_to': None,
'datagrid-add-filter': None,
}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HTML.reset_url refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1671 to +1656
headings = []
for col in self.columns:
headings.append(col.label)
headings = [col.label for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CSV.body_headings refactored with the following changes:

Comment threadwebgrid/renderers.py
Comment on lines -1686 to +1669
row = []
for col in self.columns:
row.append(col.render('csv', record))
row = [col.render('csv', record) for col in self.columns]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function CSV.body_records refactored with the following changes:

@rsyring
rsyringforce-pushed the master branch 3 times, most recently from 5d42130 to 97cc369CompareAugust 6, 2025 22:09
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@SourceryAI