mirror of
https://github.com/inventree/InvenTree.git
synced 2025-12-14 16:29:57 +00:00
* Add ParameterTemplate model - Data structure duplicated from PartParameterTemplate * Apply data migration for templates * Admin integration * API endpoints for ParameterTemplate * Scaffolding * Add validator for ParameterTemplate model type - Update migrations - Make Parameter class abstract (for now) - Validators * API updates - Fix options for model_type - Add API filters * Add definition for Parameter model * Add django admin site integration * Update InvenTreeParameterMixin class - Fetch queryset of all linked Parameter instances - Ensure deletion of linked instances * API endpoints for Parameter instances * Refactor UI table for parameter templates * Add comment for later * Add "enabled" field to ParameterTemplate model * Add new field to serializer * Rough-in new table * Implement generic "parameter" table * Enable parameters for Company model * Change migration for part parameter - Make it "universal" * Remove code for ManufacturerPartParameter * Fix for filters * Add data import for parameter table * Add verbose name to ParameterTemplate model * Removed dead API code * Update global setting * Fix typos * Check global setting for unit validation * Use GenericForeignKey * Add generic relationship to allow reverse lookups * Fixes for table structure * Add custom serializer field for ContentType with choices * Adds ContentTypeField - Handles representation of content type - Provides human-readable options * Refactor API filtering for endpoints - Specify ContentType by ID, model or app label * Revert change to parameters property * Define GenericRelationship for linking model * Refactoring some code * Add a generic way to back-annotate and prefetch parameters for any model type * Change panel position * Directly annotate parameters against different model serializers * remove defunct admin classes * Run plugin validation against parameter * Fix prefetching for PartSerializer * Implement generic "filtering" against queryset * Implement generic "ordering" by parameter * Make parametric table generic * Refactor segmented panels * Consolidate part table views * Fix for parametric part table - Only display parameters for which we know there is a value * Add parametric tables for company views * Fix typo in file name * Prefetch to reduce hits * Add generic API mixin for filtering and ordering by parameter * Fix hook for rebuilding template parameters * Remove serializer * Remove old models * Fix code for copying parameters from category * Implement more parametric tables: - ManufacturerPart - SupplierPart - Fixes and enhancements * Add parameter support for orders * Add UI support for parameters against orders * Update API version * Update CHANGELOG.md * Add parameter support for build orders * Tweak frontend * Add renderer * Remove defunct endpoints * Add migration requirement * Require contenttypes to be updated * Update migration * Try using ID val * Adjust migration dependencies * fix params fixture * fix schema export * fix modelset * Fixes for data migration * tweak table * Fix for Category Parameters * Use branch of demo dataset for testing * Add parameteric build order table * disable broken imports * remove old model from ruleset * correct test * Table tweaks * fix test * Remove old model type * fix test * fix test * Refactor mixin to avoid specifying model type manually * fix test * fix resolve name * remove unneeded import * Tweak unit testing * Fix unit test * Enable bulk-create * More fixes * More unit test tweaks * Enhancements * Unit test fixes * Add some migration tests * Fix admin tests * Fix part tests * adapt expectation * fix remaining typecheck * Docs updates * Rearrange models * fix paramater caching * fix doc links * adjust assumption * Adjust data migration unit tests * docs fixes * Fix docs link * Fixes * Tweak formatting * Add doc for setting * Add metadata view for parameters * Add metadata view for ParamterTemplate * Update CHANGELOG file * Deconflict model_type fields * Invert key:value * Revert "Invert key:value" This reverts commitd555658db2. * fix assert * Update API rev notes * Initial unit tests for API * Test parameter create / edit / delete via the API * Add some more unit tests for the API * Validate queryset annotation - Add unit test with large dataset - Ensure number of queries is fixed - Fix for prefetching check * Add breaking change info to CHANGELOG.md * Ensure that parameters are removed when deleting the linked object * Enhance type hinting * Refactor part parameter exporter plugin - Any model which supports parameters can use this now - Update documentation * Improve serializer field * Adjust unit test * Reimplement checks for locked parts * Fix unit test for data migration * Fix for unit test * Allow disable edit for ParameterTable * Fix supplier part import wizard * Add unit tests for template API filtering * Add playwright tests for purchasing index * Add tests for manufacturing index page * ui tests for sales index * Add data migration tests for ManufacturerPartParameter * Pull specific branch for python binding tests * Specify target migration * Remove debug statement * Tweak migration unit tests * Add options for spectacular * Add explicit choice options * Ensure empty string values are converted to None * Don't use custom branch for python checks * Fix for migration test * Fix migration test * Fix reference target * Remove duplicate enum in spectactular.py * Add null choice to custom serializer class * [UI] Edit shipment details - Pass "pending" status through to the form * New migration strategy: part.0144: - Add new "enabled" field to PartParameterTemplate model - Add new ContentType fields to the "PartParameterTemplate" and "PartParameter" models - Data migration for existing "PartParameter" records part.0145: - Set NOT NULL constraints on new fields - Remove the obsolete "part" field from the "PartParameter" model * More migration updates: - Create new "models" (without moving the existing tables) - Data migration for PartCataegoryParameterTemplate model - Remove PartParameterTemplate and PartParameter models * Overhaul of migration strategy - New models simply point to the old database tables - Perform schema and data migrations on the old models first (in the part app) - Swap model references in correct order * Improve checks for data migrations * Bug fix for data migration * Add migration unit test to ensure that primary keys are maintained * Add playwright test for company parameters * Rename underlying database tables * Fixes for migration unit tests * Revert "Rename underlying database tables" This reverts commit477c692076. * Fix for migration sequencing * Simplify new playwright test * Remove spectacular collision * Monkey patch the drf-spectacular warn function * Do not use custom branch for playwright testing --------- Co-authored-by: Matthias Mair <code@mjmair.com>
136 lines
3.6 KiB
TOML
136 lines
3.6 KiB
TOML
|
|
[tool.ruff]
|
|
exclude = [
|
|
".git",
|
|
"__pycache__",
|
|
"test.py",
|
|
"tests",
|
|
"venv",
|
|
"env",
|
|
".venv",
|
|
".env",
|
|
"src/backend/plugins/*",
|
|
]
|
|
src = ["src/backend/InvenTree"]
|
|
# line-length = 120
|
|
|
|
[tool.ruff.lint.extend-per-file-ignores]
|
|
"__init__.py" = ["D104"]
|
|
|
|
[tool.ruff.lint]
|
|
select = ["A", "B", "C", "C4", "D", "F", "I", "N", "SIM", "PIE", "PLE", "PLW", "RUF", "UP", "W",
|
|
#"DOC201", "DOC202", # enforce return docs
|
|
"DOC402","DOC403", # enforce yield docs
|
|
#"DOC501","DOC502", # enforce raise
|
|
]
|
|
# Things that should be enabled in the future:
|
|
# - LOG
|
|
# - DJ # for Django stuff
|
|
# - S # for security stuff (bandit)
|
|
# - D401 - Imperative docstrings
|
|
|
|
ignore = [
|
|
"PLE1205",
|
|
# - PLE1205 - Too many arguments for logging format string
|
|
"PLW2901",
|
|
# - PLW2901 - Outer {outer_kind} variable {name} overwritten by inner {inner_kind} target
|
|
"PLW0602","PLW0603","PLW0604", # global variable things
|
|
"RUF015",
|
|
# - RUF015 - Prefer next({iterable}) over single element slice
|
|
"RUF012",
|
|
# - RUF012 - Mutable class attributes should be annotated with typing.ClassVar
|
|
"RUF052",
|
|
# - RUF052 - Local dummy variable is accessed
|
|
"SIM117",
|
|
# - SIM117 - Use a single with statement with multiple contexts instead of nested with statements
|
|
"SIM102",
|
|
# - SIM102 - Use a single if statement instead of nested if statements
|
|
"SIM105",
|
|
# - SIM105 - Use contextlib.suppress({exception}) instead of try-except-pass
|
|
"C901",
|
|
# - C901 - function is too complex
|
|
"N999",
|
|
# - N802 - function name should be lowercase
|
|
"N802",
|
|
# - N806 - variable should be lowercase
|
|
"N806",
|
|
# - N812 - lowercase imported as non-lowercase
|
|
"N812",
|
|
# - RUF032 - decimal-from-float-literal
|
|
"RUF032",
|
|
# - RUF045 - implicit-class-var-in-dataclass
|
|
"RUF045",
|
|
# - UP045 - Use `X | None` instead of `Optional[X]`
|
|
"UP045",
|
|
|
|
# TODO These should be followed up and fixed
|
|
# - B904 Within an `except` clause, raise exceptions
|
|
"B904",
|
|
|
|
# Remove fast
|
|
"A002", "B018"
|
|
]
|
|
|
|
[tool.ruff.lint.pydocstyle]
|
|
convention = "google"
|
|
ignore-var-parameters = true
|
|
|
|
[tool.ruff.lint.isort]
|
|
split-on-trailing-comma = false
|
|
combine-as-imports = false
|
|
section-order = [
|
|
"future",
|
|
"standard-library",
|
|
"django",
|
|
"third-party",
|
|
"first-party",
|
|
"local-folder",
|
|
]
|
|
|
|
[tool.ruff.lint.isort.sections]
|
|
"django" = ["django"]
|
|
|
|
[tool.ruff.format]
|
|
quote-style = "single"
|
|
indent-style = "space"
|
|
skip-magic-trailing-comma = true
|
|
line-ending = "auto"
|
|
|
|
[tool.uv.pip]
|
|
python-version = "3.11.0"
|
|
no-strip-extras=true
|
|
generate-hashes=true
|
|
|
|
[tool.ty.environment]
|
|
root = ["src/backend/InvenTree"]
|
|
|
|
[tool.ty.rules]
|
|
unresolved-reference="ignore" # 21 # see https://github.com/astral-sh/ty/issues/220
|
|
unresolved-attribute="ignore" # 505 # need Plugin Mixin typing
|
|
call-non-callable="ignore" # 8 ##
|
|
invalid-return-type="ignore" # 22 ##
|
|
invalid-argument-type="ignore" # 49
|
|
possibly-unbound-attribute="ignore" # 25 # https://github.com/astral-sh/ty/issues/164
|
|
unknown-argument="ignore" # 3 # need to wait for betterdjango field stubs
|
|
invalid-assignment="ignore" # 17 # need to wait for betterdjango field stubs
|
|
no-matching-overload="ignore" # 3 # need to wait for betterdjango field stubs
|
|
|
|
[tool.coverage.run]
|
|
source = ["src/backend/InvenTree", "InvenTree"]
|
|
dynamic_context = "test_function"
|
|
|
|
[tool.coverage.html]
|
|
show_contexts = true
|
|
|
|
[tool.djlint]
|
|
ignore = "D018,H006,H008,H020,H021,H023,H025,H030,H031,T002"
|
|
|
|
[tool.isort]
|
|
src_paths=["src/backend/InvenTree", ]
|
|
skip_glob ="*/migrations/*.py"
|
|
known_django="django"
|
|
sections=["FUTURE","STDLIB","DJANGO","THIRDPARTY","FIRSTPARTY","LOCALFOLDER"]
|
|
|
|
[tool.codespell]
|
|
ignore-words-list = ["assertIn","SME","intoto","fitH"]
|