Skip to content
This repository has been archived by the owner on Oct 17, 2024. It is now read-only.

Commit

Permalink
Format the ruff table (#14)
Browse files Browse the repository at this point in the history
  • Loading branch information
gaborbernat authored May 14, 2024
1 parent 3f740bd commit 6892f56
Show file tree
Hide file tree
Showing 7 changed files with 578 additions and 27 deletions.
6 changes: 3 additions & 3 deletions rust/src/build_system.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use crate::helpers::array::{sort, transform};
use crate::helpers::pep508::{format_requirement, get_canonic_requirement_name};
use crate::helpers::table::{for_entries, reorder_table_keys, Tables};

pub fn fix_build(tables: &mut Tables, keep_full_version: bool) {
pub fn fix(tables: &mut Tables, keep_full_version: bool) {
let table_element = tables.get(&String::from("build-system"));
if table_element.is_none() {
return;
Expand All @@ -29,14 +29,14 @@ mod tests {
use taplo::parser::parse;
use taplo::syntax::SyntaxElement;

use crate::build_system::fix_build;
use crate::build_system::fix;
use crate::helpers::table::Tables;

fn evaluate(start: &str, keep_full_version: bool) -> String {
let root_ast = parse(start).into_syntax().clone_for_update();
let count = root_ast.children_with_tokens().count();
let mut tables = Tables::from_ast(&root_ast);
fix_build(&mut tables, keep_full_version);
fix(&mut tables, keep_full_version);
let entries = tables
.table_set
.iter()
Expand Down
198 changes: 198 additions & 0 deletions rust/src/data/ruff-order.expected.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,198 @@
[tool.ruff]
required-version = ">=0.0.193"
extend = "../pyproject.toml"
target-version = "py37"
line-length = 120
indent-width = 2
tab-size = 2
builtins = [
"ALPHA",
"Bar",
]
namespace-packages = [
"ALPHA",
"Bar",
]
src = [
"ALPHA",
"Bar",
]
include = [
"ALPHA",
"Bar",
]
extend-include = [
"ALPHA",
"Bar",
]
exclude = [
"ALPHA",
"Bar",
]
extend-exclude = [
"ALPHA",
"Bar",
]
force-exclude = true
respect-gitignore = false
preview = true
fix = true
unsafe-fixes = true
fix-only = true
show-fixes = true
show-source = true
output-format = "grouped"
cache-dir = "~/a"
format.preview = true
format.indent-style = "tab"
format.quote-style = "single"
format.line-ending = "lf"
format.skip-magic-trailing-comma = true
format.docstring-code-line-length = 60
format.exclude = [
"ALPHA",
"Bar",
]
format.docstring-code-format = true
format.extra = true
format.more = true
lint.select = [
"ALPHA",
"Bar",
]
lint.extend-select = [
"ALPHA",
"Bar",
]
lint.explicit-preview-rules = true
lint.exclude = [
"ALPHA",
"Bar",
]
lint.extend-ignore = [
"ALPHA",
"Bar",
]
lint.per-file-ignores.'Magic.py' = [
"ALPHA",
"Bar",
]
lint.per-file-ignores."alpha.py" = [
"ALPHA",
"Bar",
]
lint.extend-per-file-ignores.'Magic.py' = [
"ALPHA",
"Bar",
]
lint.extend-per-file-ignores."alpha.py" = [
"ALPHA",
"Bar",
]
lint.fixable = [
"ALPHA",
"Bar",
]
lint.extend-fixable = [
"ALPHA",
"Bar",
]
lint.unfixable = [
"ALPHA",
"Bar",
]
lint.extend-safe-fixes = [
"ALPHA",
"Bar",
]
lint.extend-unsafe-fixes = [
"ALPHA",
"Bar",
]
lint.typing-modules = [
"ALPHA",
"Bar",
]
lint.allowed-confusables = [
"",
"",
"ρ",
]
lint.dummy-variable-rgx = "^_$"
lint.external = [
"ALPHA",
"Bar",
]
lint.task-tags = [
"ALPHA",
"Bar",
]
lint.flake8-annotations.suppress-none-returning = true
lint.flake8-bandit.hardcoded-tmp-directory = [
"ALPHA",
"Bar",
]
lint.flake8-boolean-trap.extend-allowed-calls = [
"ALPHA",
"Bar",
]
lint.flake8-bugbear.extend-immutable-calls = [
"ALPHA",
"Bar",
]
lint.flake8-builtins.builtins-ignorelist = [
"ALPHA",
"Bar",
]
lint.flake8-comprehensions.allow-dict-calls-with-keyword-arguments = true
lint.flake8-copyright.author = "Ruff"
lint.flake8-copyright.notice-rgx = "(?i)Copyright \\(C\\) \\d{4}"
lint.flake8-errmsg.max-string-length = 20
lint.flake8-gettext.extend-function-names = [
"ALPHA",
"Bar",
]
lint.flake8-implicit-str-concat.allow-multiline = false
lint.flake8-import-conventions.aliases.altair = "alt"
lint.flake8-import-conventions.aliases.numpy = "np"
lint.flake8-pytest-style.parametrize-names-type = "list"
lint.flake8-pytest-style.raises-extend-require-match-for = [
"ALPHA",
"Bar",
]
lint.flake8-quotes.docstring-quotes = "single"
lint.flake8-self.extend-ignore-names = [
"ALPHA",
"Bar",
]
lint.flake8-tidy-imports.banned-module-level-imports = [
"ALPHA",
"Bar",
]
lint.flake8-type-checking.exempt-modules = [
"ALPHA",
"Bar",
]
lint.flake8-unused-arguments.ignore-variadic-names = true
lint.isort.section-order = [
"Bar",
"ALPHA",
]
lint.mccabe.max-complexity = 5
lint.pep8-naming.classmethod-decorators = [
"ALPHA",
"Bar",
]
lint.pycodestyle.max-line-length = 100
lint.pydocstyle.convention = "google"
lint.pyflakes.extend-generics = [
"ALPHA",
"Bar",
]
lint.pylint.allow-dunder-method-names = [
"ALPHA",
"Bar",
]
lint.pyupgrade.keep-runtime-typing = true
lint.extra.ok = 1
lint.more.ok = 1
114 changes: 114 additions & 0 deletions rust/src/data/ruff-order.start.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
[tool.ruff]
builtins = ['Bar', 'ALPHA']
cache-dir = '~/a'
exclude = ['Bar', 'ALPHA']
extend = '../pyproject.toml'
extend-exclude = ['Bar', 'ALPHA']
extend-include = ['Bar', 'ALPHA']
fix = true
fix-only = true
force-exclude = true
include = ['Bar', 'ALPHA']
indent-width = 2
line-length = 120
namespace-packages = ['Bar', 'ALPHA']
output-format = 'grouped'
preview = true
required-version = '>=0.0.193'
respect-gitignore = false
show-fixes = true
show-source = true
src = ['Bar', 'ALPHA']
tab-size = 2
target-version = 'py37'
unsafe-fixes = true
[tool.ruff.format]
docstring-code-format = true
docstring-code-line-length = 60
exclude = ['Bar', 'ALPHA']
indent-style = 'tab'
line-ending = 'lf'
preview = true
more = true
extra = true
quote-style = 'single'
skip-magic-trailing-comma = true
[tool.ruff.lint]
allowed-confusables = ['', 'ρ', '']
dummy-variable-rgx = '^_$'
exclude = ['Bar', 'ALPHA']
explicit-preview-rules = true
extend-fixable = ['Bar', 'ALPHA']
extend-ignore = ['Bar', 'ALPHA']
extend-safe-fixes = ['Bar', 'ALPHA']
extend-select = ['Bar', 'ALPHA']
extend-unsafe-fixes = ['Bar', 'ALPHA']
external = ['Bar', 'ALPHA']
fixable = ['Bar', 'ALPHA']
select = ['Bar', 'ALPHA']
task-tags = ['Bar', 'ALPHA']
typing-modules = ['Bar', 'ALPHA']
unfixable = ['Bar', 'ALPHA']
[tool.ruff.lint.extend-per-file-ignores]
'Magic.py' = ['Bar', 'ALPHA']
"alpha.py" = ['Bar', 'ALPHA']
[tool.ruff.lint.per-file-ignores]
'Magic.py' = ['Bar', 'ALPHA']
"alpha.py" = ['Bar', 'ALPHA']
[tool.ruff.lint.flake8-annotations]
suppress-none-returning = true
[tool.ruff.lint.flake8-bandit]
hardcoded-tmp-directory = ['Bar', 'ALPHA']
[tool.ruff.lint.flake8-boolean-trap]
extend-allowed-calls = ['Bar', 'ALPHA']
[tool.ruff.lint.flake8-bugbear]
extend-immutable-calls = ['Bar', 'ALPHA']
[tool.ruff.lint.flake8-builtins]
builtins-ignorelist = ['Bar', 'ALPHA']
[tool.ruff.lint.flake8-comprehensions]
allow-dict-calls-with-keyword-arguments = true
[tool.ruff.lint.flake8-copyright]
author = 'Ruff'
notice-rgx = '(?i)Copyright \\(C\\) \\d{4}'
[tool.ruff.lint.flake8-errmsg]
max-string-length = 20
[tool.ruff.lint.flake8-gettext]
extend-function-names = ['Bar', 'ALPHA']
[tool.ruff.lint.flake8-implicit-str-concat]
allow-multiline = false
[tool.ruff.lint.flake8-import-conventions.aliases]
altair = "alt"
numpy = "np"
[tool.ruff.lint.flake8-pytest-style]
parametrize-names-type = 'list'
raises-extend-require-match-for = ['Bar', 'ALPHA']
[tool.ruff.lint.flake8-quotes]
docstring-quotes = 'single'
[tool.ruff.lint.flake8-self]
extend-ignore-names = ['Bar', 'ALPHA']
[tool.ruff.lint.flake8-tidy-imports]
banned-module-level-imports = ['Bar', 'ALPHA']
[tool.ruff.lint.flake8-type-checking]
exempt-modules = ['Bar', 'ALPHA']
[tool.ruff.lint.flake8-unused-arguments]
ignore-variadic-names = true
[tool.ruff.lint.isort]
section-order = ['Bar', 'ALPHA']
[tool.ruff.lint.mccabe]
max-complexity = 5
[tool.ruff.lint.pep8-naming]
classmethod-decorators = ['Bar', 'ALPHA']
[tool.ruff.lint.pycodestyle]
max-line-length = 100
[tool.ruff.lint.pydocstyle]
convention = 'google'
[tool.ruff.lint.pyflakes]
extend-generics = ['Bar', 'ALPHA']
[tool.ruff.lint.pylint]
allow-dunder-method-names = ['Bar', 'ALPHA']
[tool.ruff.lint.more]
ok = 1
[tool.ruff.lint.extra]
ok = 1
[tool.ruff.lint.pyupgrade]
keep-runtime-typing = true
38 changes: 21 additions & 17 deletions rust/src/helpers/table.rs
Original file line number Diff line number Diff line change
Expand Up @@ -119,28 +119,32 @@ fn get_key(k: &str) -> String {
}

pub fn reorder_table_keys(table: &mut RefMut<Vec<SyntaxElement>>, order: &[&str]) {
let size = table.len();
let (key_to_pos, key_set) = load_keys(table);
let mut to_insert = Vec::<SyntaxElement>::new();
let mut handled = HashSet::<usize>::new();
for key in order {
let mut parts = key_to_pos
.keys()
.filter(|k| {
key == k || (k.starts_with(key) && k.len() > key.len() && k.chars().nth(key.len()).unwrap() == '.')
let (size, mut to_insert) = (table.len(), Vec::<SyntaxElement>::new());
let (key_to_position, key_set) = load_keys(table);
let mut handled_positions = HashSet::<usize>::new();
for current_key in order {
let mut matching_keys = key_to_position
.iter()
.filter(|(checked_key, position)| {
!handled_positions.contains(position)
&& (current_key == checked_key
|| (checked_key.starts_with(current_key)
&& checked_key.len() > current_key.len()
&& checked_key.chars().nth(current_key.len()).unwrap() == '.'))
})
.map(|(key, _)| key)
.clone()
.collect::<Vec<&String>>();
parts.sort_by_key(|s| s.to_lowercase().replace('"', ""));
for element in parts {
let pos = key_to_pos[element];
to_insert.extend(key_set[pos].clone());
handled.insert(pos);
matching_keys.sort_by_key(|key| key.to_lowercase().replace('"', ""));
for key in matching_keys {
let position = key_to_position[key];
to_insert.extend(key_set[position].clone());
handled_positions.insert(position);
}
}
for (at, entry) in key_set.into_iter().enumerate() {
if !handled.contains(&at) {
to_insert.extend(entry);
for (position, entries) in key_set.into_iter().enumerate() {
if !handled_positions.contains(&position) {
to_insert.extend(entries);
}
}
table.splice(0..size, to_insert);
Expand Down
Loading

0 comments on commit 6892f56

Please sign in to comment.