Format Python code
Problems to solve
After introducing black
and isort
formatter (MR), we would like to ensure better consistency across the code base. Running make format
repository wide results in a lot of changes and that would cause a lot of merge conflicts with existing MRs.
Proposal
Currently make lint
reports linting issue across 41
files.
root@3cb8b7bbc8b2:/app# make lint
Installing lint dependencies...
Installing dependencies from lock file
No dependencies to install or update
Installing the current project: codesuggestions (0.1.0)
Running flake8...
Running black check...
would reformat /app/codesuggestions/api/timing.py
would reformat /app/codesuggestions/api/monitoring.py
would reformat /app/codesuggestions/app.py
would reformat /app/codesuggestions/api/rollout/model.py
would reformat /app/codesuggestions/auth/user.py
would reformat /app/codesuggestions/api/v2/experimental/code.py
would reformat /app/codesuggestions/auth/providers.py
would reformat /app/codesuggestions/api/middleware.py
would reformat /app/codesuggestions/config.py
would reformat /app/codesuggestions/deps.py
would reformat /app/codesuggestions/models/fake.py
would reformat /app/codesuggestions/models/base.py
would reformat /app/codesuggestions/profiling.py
would reformat /app/codesuggestions/instrumentators/base.py
would reformat /app/codesuggestions/models/codegen.py
would reformat /app/codesuggestions/prompts/prompt.py
would reformat /app/codesuggestions/suggestions/code.py
would reformat /app/codesuggestions/suggestions/experimental.py
would reformat /app/codesuggestions/prompts/code_parser.py
would reformat /app/codesuggestions/models/palm.py
would reformat /app/codesuggestions/suggestions/processing/base.py
would reformat /app/codesuggestions/suggestions/processing/ops.py
would reformat /app/codesuggestions/suggestions/detectors.py
would reformat /app/converter/codegen_gptj_convert.py
would reformat /app/converter/triton_config_gen.py
would reformat /app/models/codegen/model.py
would reformat /app/models/fauxpilot/postprocessing/model.py
would reformat /app/codesuggestions/suggestions/processing/engine.py
would reformat /app/models/fauxpilot/preprocessing/model.py
would reformat /app/converter/huggingface_gptj_convert.py
would reformat /app/tests/codesuggestions/processing/test_prompt_builder.py
would reformat /app/tests/codesuggestions/models/test_palm.py
would reformat /app/tests/codesuggestions/prompts/test_import_extractor.py
would reformat /app/tests/codesuggestions/prompts/test_symbol_counter.py
would reformat /app/tests/codesuggestions/test_authentication.py
would reformat /app/tests/codesuggestions/test_config.py
would reformat /app/tests/codesuggestions/test_model_rollout.py
would reformat /app/tests/codesuggestions/test_processing.py
would reformat /app/tests/codesuggestions/test_prompts.py
would reformat /app/tests/codesuggestions/test_engine.py
would reformat /app/tests/codesuggestions/test_detectors.py
Oh no! 💥 💔 💥
41 files would be reformatted, 35 files would be left unchanged.
make: *** [Makefile:59: check-black] Error 1
I would propose to raise smaller MR with targeted changes per folder to avoid merge conflicts.
List of files
❯ fd --glob "*.py" codesuggestions/ tests/
codesuggestions/__init__.py
codesuggestions/api/__init__.py
codesuggestions/api/middleware.py
codesuggestions/api/monitoring.py
codesuggestions/api/rollout/__init__.py
codesuggestions/api/rollout/model.py
codesuggestions/api/server.py
codesuggestions/api/timing.py
codesuggestions/api/v2/__init__.py
codesuggestions/api/v2/api.py
codesuggestions/api/v2/endpoints/__init__.py
codesuggestions/api/v2/endpoints/code.py
codesuggestions/api/v2/experimental/__init__.py
codesuggestions/api/v2/experimental/code.py
codesuggestions/app.py
codesuggestions/auth/__init__.py
codesuggestions/auth/cache.py
codesuggestions/auth/providers.py
codesuggestions/auth/user.py
codesuggestions/config.py
codesuggestions/deps.py
codesuggestions/instrumentators/__init__.py
codesuggestions/instrumentators/base.py
codesuggestions/models/__init__.py
codesuggestions/models/base.py
codesuggestions/models/codegen.py
codesuggestions/models/fake.py
codesuggestions/models/monitoring.py
codesuggestions/models/palm.py
codesuggestions/profiling.py
codesuggestions/prompts/__init__.py
codesuggestions/prompts/base.py
codesuggestions/prompts/code_parser.py
codesuggestions/prompts/prompt.py
codesuggestions/structured_logging.py
codesuggestions/suggestions/__init__.py
codesuggestions/suggestions/code.py
codesuggestions/suggestions/detectors.py
codesuggestions/suggestions/experimental.py
codesuggestions/suggestions/mixins.py
codesuggestions/suggestions/processing/__init__.py
codesuggestions/suggestions/processing/base.py
codesuggestions/suggestions/processing/engine.py
codesuggestions/suggestions/processing/ops.py
codesuggestions/tokenizer.py
tests/__init__.py
tests/codesuggestions/__init__.py
tests/codesuggestions/api/test_suggestions.py
tests/codesuggestions/models/test_palm.py
tests/codesuggestions/processing/test_prompt_builder.py
tests/codesuggestions/prompts/test_import_extractor.py
tests/codesuggestions/prompts/test_symbol_counter.py
tests/codesuggestions/test_auth_providers.py
tests/codesuggestions/test_authentication.py
tests/codesuggestions/test_config.py
tests/codesuggestions/test_detectors.py
tests/codesuggestions/test_engine.py
tests/codesuggestions/test_logging.py
tests/codesuggestions/test_model_rollout.py
tests/codesuggestions/test_model_telemetry.py
tests/codesuggestions/test_processing.py
tests/codesuggestions/test_prompts.py
tests/integration/__init__.py
tests/integration/test_app.py
Plan of attack
-
Pick a folder
-
codesuggestions/api
(!275 (merged)) -
codesuggestions/auth
(!273 (merged)) -
codesuggestions/prompts
(!276 (merged)) -
codesuggestions/suggestions
(!257 (merged)) -
tests
(!277 (merged))
-
-
Create an MR
-
Add the folder to the
Makefile
-LINT_WORKING_DIR ?= ${CODE_SUGGESTIONS_DIR}/suggestions +LINT_WORKING_DIR ?= ${CODE_SUGGESTIONS_DIR}/suggestions ${ROOT_DIR}/tests
-
Run
make format
locally and commit the changes -
Make sure the CI is green.
-
Submit for review and
🎉
Edited by Alexander Chueshev