[project] name = 'py-xbc' dynamic = ['version'] authors = [ { name = 'Síle Ekaterin Liszka', email = 'sheila@vulpine.house' } ] description = 'A library for manipulating eXtra BootConfig (XBC) files' readme = 'README.md' keywords = ['bootconfig', 'xbc', 'configuration'] dependencies = ['pyparsing'] requires-python = '>=3.7' classifiers = [ 'Development Status :: 4 - Beta', 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', 'Topic :: Utilities' ] [project.urls] Homepage = 'https://gitea.treehouse.systems/VulpineAmethyst/py-xbc' Issues = 'https://gitea.treehouse.systems/VulpineAmethyst/py-xbc/issues' [project.optional-dependencies] test = ['pytest'] [build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [tool.setuptools.dynamic] version = {attr = "xbc.version.version"} [tool.pytest.ini_options] addopts = [ "--import-mode=importlib", ] pythonpath = 'src' [tool.pylint.main] fail-under = 10 ignore-patterns = ["^\\.#"] jobs = 0 limit-inference-results = 100 persistent = true py-version = "3.7" source-roots = 'src' suggestion-mode = true [tool.pylint.basic] argument-naming-style = "snake_case" attr-naming-style = "snake_case" bad-names = ["foo", "bar", "baz", "toto", "tutu", "tata"] class-attribute-naming-style = "any" class-const-naming-style = "UPPER_CASE" class-naming-style = "PascalCase" # XBCParser const-naming-style = "PascalCase" docstring-min-length = -1 function-naming-style = "snake_case" good-names = ["i", "j", "k", "ex", "Run", "_"] inlinevar-naming-style = "any" method-naming-style = "snake_case" module-naming-style = "snake_case" no-docstring-rgx = "^_" property-classes = ["abc.abstractproperty"] variable-naming-style = "snake_case" [tool.pylint.classes] defining-attr-methods = ["__init__", "__new__", "setUp", "asyncSetUp", "__post_init__"] exclude-protected = ["_asdict", "_fields", "_replace", "_source", "_make", "os._exit"] valid-classmethod-first-arg = ["cls"] valid-metaclass-classmethod-first-arg = ["mcs"] [tool.pylint.design] exclude-too-few-public-methods = 'XBCNode' max-args = 5 max-attributes = 7 max-bool-expr = 5 max-branches = 12 max-locals = 15 max-parents = 7 max-public-methods = 20 max-returns = 6 max-statements = 50 min-public-methods = 2 [tool.pylint.exceptions] overgeneral-exceptions = ["builtins.BaseException", "builtins.Exception"] [tool.pylint.format] ignore-long-lines = "^\\s*(# )??$" indent-after-paren = 4 indent-string = " " max-line-length = 100 max-module-lines = 1000 [tool.pylint."messages control"] confidence = ["HIGH", "CONTROL_FLOW", "INFERENCE", "INFERENCE_FAILURE", "UNDEFINED"] disable = ["raw-checker-failed", "bad-inline-option", "locally-disabled", "file-ignored", "suppressed-message", "useless-suppression", "deprecated-pragma", "use-symbolic-message-instead", "use-implicit-booleaness-not-comparison-to-string", "use-implicit-booleaness-not-comparison-to-zero"] [tool.pylint.miscellaneous] notes = ["FIXME", "XXX", "TODO"] [tool.pylint.refactoring] max-nested-blocks = 5 never-returning-functions = ["sys.exit", "argparse.parse_error"] [tool.pylint.reports] evaluation = "max(0, 0 if fatal else 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10))" score = true [tool.pylint.similarities] ignore-comments = true ignore-docstrings = true ignore-imports = true ignore-signatures = true min-similarity-lines = 4 [tool.pylint.typecheck] contextmanager-decorators = ["contextlib.contextmanager"] ignore-none = true ignore-on-opaque-inference = true ignored-checks-for-mixins = ["no-member", "not-async-context-manager", "not-context-manager", "attribute-defined-outside-init"] ignored-classes = ["optparse.Values", "thread._local", "_thread._local", "argparse.Namespace"] missing-member-hint = true missing-member-hint-distance = 1 missing-member-max-choices = 1 mixin-class-rgx = ".*[Mm]ixin" [tool.pylint.variables] allow-global-unused-variables = true callbacks = ["cb_", "_cb"] dummy-variables-rgx = "_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_" ignored-argument-names = "_.*|^ignored_|^unused_" redefining-builtins-modules = ["six.moves", "past.builtins", "future.builtins", "builtins", "io"]