Skip to content
This repository was archived by the owner on Oct 17, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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