Skip to content

wrong-import-order fails on one system, passes in other #8845

Open

Description

Bug description

In one system pylint is perfectly fine, but in another it's complaining about import order.

Configuration

Configuration is identical in both systems:

[tool.pylint]
[tool.pylint.master]
ignore = "CVS"
ignore-patterns = "kedro/templates/*"
load-plugins = [
    "pylint.extensions.docparams",
    "pylint.extensions.no_self_use"
]
extension-pkg-whitelist = "cv2"
unsafe-load-any-extension = false
[tool.pylint.messages_control]
disable = [
    "ungrouped-imports",
    "duplicate-code"
]
enable = ["useless-suppression"]
[tool.pylint.refactoring]
max-nested-blocks = 5
[tool.pylint.format]
indent-after-paren=4
indent-string="    "
[tool.pylint.miscellaneous]
notes = [
    "FIXME",
    "XXX"
]
[tool.pylint.design]
min-public-methods = 1
$ sha256sum /home/circleci/project/pyproject.toml
e948e6e86a78d5dd94d55162be92c1d53ed8c65459594da76c63c66514cdc43c  /home/circleci/project/pyproject.toml
$ sha256sum /workspace/kedro/pyproject.toml
e948e6e86a78d5dd94d55162be92c1d53ed8c65459594da76c63c66514cdc43c  /workspace/kedro/pyproject.toml

Command used

pylint -v kedro/framework/cli/micropkg.py

Pylint output

$ pylint --version
pylint 2.17.4
astroid 2.15.6
Python 3.8.16 (default, Jun 12 2023, 18:09:05) 
[GCC 11.2.0]
$ pylint -v kedro/framework/cli/micropkg.py
Using config file /home/circleci/project/pyproject.toml
************* Module kedro.framework.cli.micropkg
kedro/framework/cli/micropkg.py:15:0: C0411: third party import "from packaging.requirements import InvalidRequirement, Requirement" should be placed before "from build.util import project_wheel_metadata" (wrong-import-order)
kedro/framework/cli/micropkg.py:16:0: C0411: third party import "from packaging.utils import canonicalize_name" should be placed before "from build.util import project_wheel_metadata" (wrong-import-order)
kedro/framework/cli/micropkg.py:17:0: C0411: third party import "from rope.base.project import Project" should be placed before "from build.util import project_wheel_metadata" (wrong-import-order)
kedro/framework/cli/micropkg.py:18:0: C0411: third party import "from rope.contrib import generate" should be placed before "from build.util import project_wheel_metadata" (wrong-import-order)
kedro/framework/cli/micropkg.py:19:0: C0411: third party import "from rope.refactor.move import MoveModule" should be placed before "from build.util import project_wheel_metadata" (wrong-import-order)
kedro/framework/cli/micropkg.py:20:0: C0411: third party import "from rope.refactor.rename import Rename" should be placed before "from build.util import project_wheel_metadata" (wrong-import-order)
kedro/framework/cli/micropkg.py:21:0: C0411: third party import "from setuptools.discovery import FlatLayoutPackageFinder" should be placed before "from build.util import project_wheel_metadata" (wrong-import-order)

------------------------------------------------------------------
Your code has been rated at 9.80/10 (previous run: 9.80/10, +0.00)

Expected behavior

$ pylint -v kedro/framework/cli/micropkg.py
Using config file /workspace/kedro/pyproject.toml

--------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

Pylint version

$ pylint --version
pylint 2.17.4
astroid 2.15.6
Python 3.8.15 (default, Jun 28 2023, 13:31:36) 
[GCC 11.3.0]

OS / Environment

Ubuntu 22.04 in both cases

Additional dependencies

"Bad" machine:

absl-py==1.4.0
adlfs==2023.4.0
aiohttp==3.8.4
aiosignal==1.3.1
antlr4-python3-runtime==4.9.3
anyconfig==0.10.1
anyio==3.7.1
appdirs==1.4.4
argcomplete==3.0.8
argon2-cffi==21.3.0
argon2-cffi-bindings==21.2.0
arrow==1.2.3
astroid==2.15.6
asttokens==2.2.1
astunparse==1.6.3
async-timeout==4.0.2
attrs==23.1.0
aws-xray-sdk==0.95
azure-core==1.28.0
azure-datalake-store==0.0.53
azure-identity==1.13.0
azure-storage-blob==12.17.0
Babel==2.12.1
backcall==0.2.0
bandit==1.7.5
beautifulsoup4==4.12.2
behave==1.2.6
binaryornot==0.4.4
biopython==1.81
black==22.12.0
blacken-docs==1.9.2
bleach==6.0.0
blosc2==2.0.0
bokeh==3.1.1
boto==2.49.0
boto3==1.28.2
botocore==1.31.2
build==0.10.0
cachetools==5.3.1
certifi==2023.5.7
cffi==1.15.1
cfgv==3.3.1
chardet==5.1.0
charset-normalizer==3.2.0
click==8.1.3
click-plugins==1.1.1
cligj==0.7.2
cloudpickle==2.2.1
comm==0.1.3
compress-pickle==2.1.0
contourpy==1.1.0
cookiecutter==2.2.3
coverage==7.2.7
cryptography==41.0.2
cycler==0.11.0
Cython==0.29.36
dask==2021.12.0
db-dtypes==1.1.1
debugpy==1.6.7
decorator==5.1.1
defusedxml==0.7.1
delta-spark==1.2.1
dill==0.3.6
distlib @ file:///croot/distlib_1673477531104/work
distributed==2021.12.0
docker==6.1.3
docopt==0.6.2
dynaconf==3.1.12
ecdsa==0.18.0
et-xmlfile==1.1.0
exceptiongroup==1.1.2
execnet==2.0.2
executing==1.2.0
fastjsonschema==2.17.1
filelock @ file:///croot/filelock_1672387128942/work
Fiona==1.9.4.post1
flatbuffers==23.5.26
frozenlist==1.3.3
fs==2.4.16
fsspec==2023.1.0
future==0.18.3
gast==0.4.0
gcsfs==2023.1.0
geopandas==0.13.2
gitdb==4.0.10
gitdb2==4.0.2
GitPython==3.0.6
google-api-core==2.11.1
google-auth==2.22.0
google-auth-oauthlib==1.0.0
google-cloud-bigquery==3.11.3
google-cloud-bigquery-storage==2.22.0
google-cloud-core==2.3.3
google-cloud-storage==2.10.0
google-crc32c==1.5.0
google-pasta==0.2.0
google-resumable-media==2.5.0
googleapis-common-protos==1.59.1
greenlet==2.0.2
grimp==2.5
grpcio==1.56.0
grpcio-status==1.56.0
h5py==3.9.0
hdfs==2.7.0
holoviews==1.13.5
identify==2.5.24
idna==3.4
import-linter==1.8.0
importlib-metadata==6.8.0
importlib-resources==6.0.0
iniconfig==2.0.0
ipykernel==6.24.0
ipython==8.12.2
ipython-genutils==0.2.0
ipywidgets==8.0.7
isodate==0.6.1
isort==5.12.0
jedi==0.18.2
Jinja2==3.0.3
jmespath==0.10.0
joblib==1.3.1
json5==0.9.14
jsondiff==1.1.1
jsonpickle==3.0.1
jsonschema==4.18.1
jsonschema-specifications==2023.6.1
jupyter==1.0.0
jupyter-console==6.6.3
jupyter-server==1.24.0
jupyter_client==8.3.0
jupyter_core==5.3.1
jupyterlab==3.5.3
jupyterlab-pygments==0.2.2
jupyterlab-widgets==3.0.8
jupyterlab_server==2.15.2
kedro @ file:///home/circleci/project
keras==2.13.1
kiwisolver==1.4.4
lazy-object-proxy==1.9.0
libclang==16.0.0
linkify-it-py==2.0.2
locket==1.0.0
lxml==4.9.3
lz4==4.3.2
Markdown==3.4.3
markdown-it-py==3.0.0
MarkupSafe==2.1.3
matplotlib==3.3.4
matplotlib-inline==0.1.6
mccabe==0.7.0
mdit-py-plugins==0.4.0
mdurl==0.1.2
memory-profiler==0.61.0
mistune==3.0.1
mkl-fft==1.3.6
mkl-random @ file:///work/mkl/mkl_random_1682950433854/work
mkl-service==2.4.0
mock==5.1.0
more-itertools==9.1.0
moto==1.3.7
msal==1.22.0
msal-extensions==1.0.0
msgpack==1.0.5
multidict==6.0.4
mypy-extensions==1.0.0
nbclassic==1.0.0
nbclient==0.8.0
nbconvert==7.6.0
nbformat==5.9.1
nest-asyncio==1.5.6
networkx==2.8.8
nodeenv==1.8.0
notebook==6.5.4
notebook_shim==0.2.3
numexpr @ file:///croot/numexpr_1683221822650/work
numpy==1.22.4
oauthlib==3.2.2
omegaconf==2.3.0
opencv-python==4.5.5.64
openpyxl==3.1.2
opt-einsum==3.3.0
packaging==23.1
pandas==1.5.3
pandas-gbq==0.17.9
pandocfilters==1.5.0
panel==1.2.0
param==1.13.0
parse==1.19.1
parse-type==0.6.2
parso==0.8.3
partd==1.4.0
pathspec==0.11.1
pbr==5.11.1
pexpect==4.8.0
pickleshare==0.7.5
Pillow==9.5.0
pip-tools==6.14.0
pipx==1.2.0
pkgutil_resolve_name==1.3.10
platformdirs @ file:///opt/conda/conda-bld/platformdirs_1662711380096/work
plotly==5.15.0
pluggy==1.2.0
portalocker==2.7.0
pre-commit==2.21.0
prometheus-client==0.17.1
prompt-toolkit==3.0.39
proto-plus==1.22.3
protobuf==4.23.4
psutil==5.9.5
ptyprocess==0.7.0
pure-eval==0.2.2
py==1.11.0
py-cpuinfo @ file:///home/conda/feedstock_root/build_artifacts/py-cpuinfo_1666774466606/work
py4j==0.10.9.5
pyaml==23.7.0
pyarrow==9.0.0
pyasn1==0.5.0
pyasn1-modules==0.3.0
pycparser==2.21
pycryptodome==3.18.0
pydata-google-auth==1.8.1
Pygments==2.15.1
PyJWT==2.7.0
pylint==2.17.4
pyparsing==3.1.0
pyproj==3.5.0
pyproject_hooks==1.0.0
pyspark==3.2.4
pytest==7.4.0
pytest-cov==3.0.0
pytest-forked==1.6.0
pytest-mock==1.13.0
pytest-xdist==2.2.1
python-dateutil==2.8.2
python-jose==2.0.2
python-slugify==8.0.1
pytoolconfig==1.2.5
pytz==2023.3
pyviz-comms==2.3.2
PyYAML==6.0
pyzmq==25.1.0
qtconsole==5.4.3
QtPy==2.3.1
redis==4.6.0
referencing==0.29.1
requests==2.31.0
requests-mock==1.11.0
requests-oauthlib==1.3.1
responses==0.23.1
rich==13.4.2
rope==1.9.0
rpds-py==0.8.10
rsa==4.9
s3fs==0.4.2
s3transfer==0.6.1
scikit-learn==1.0.2
scipy==1.7.3
Send2Trash==1.8.2
shapely==2.0.1
six==1.16.0
smmap==5.0.0
sniffio==1.3.0
sortedcontainers==2.4.0
soupsieve==2.4.1
SQLAlchemy==1.4.49
stack-data==0.6.2
stevedore==5.1.0
tables @ file:///croot/pytables_1685123207389/work
tblib==2.0.0
tenacity==8.2.2
tensorboard==2.13.0
tensorboard-data-server==0.7.1
tensorflow==2.13.0
tensorflow-estimator==2.13.0
tensorflow-io-gcs-filesystem==0.32.0
termcolor==2.3.0
terminado==0.17.1
text-unidecode==1.3
threadpoolctl==3.1.0
tinycss2==1.2.1
toml==0.10.2
tomli==2.0.1
tomlkit==0.11.8
toolz==0.12.0
toposort==1.10
tornado==6.3.2
tqdm==4.65.0
traitlets==5.9.0
triad==0.9.1
truffleHog==2.2.1
truffleHogRegexes==0.0.7
types-PyYAML==6.0.12.10
typing_extensions==4.5.0
uc-micro-py==1.0.2
urllib3==1.26.16
userpath==1.8.0
virtualenv @ file:///croot/virtualenv_1674752100526/work
wcwidth==0.2.6
webencodings==0.5.1
websocket-client==1.6.1
Werkzeug==2.3.6
widgetsnbextension==4.0.8
wrapt==1.15.0
XlsxWriter==1.4.5
xmltodict==0.13.0
xyzservices==2023.5.0
yarl==1.9.2
zict==3.0.0
zipp==3.16.0

"Good" machine:

absl-py==1.4.0
adlfs==2023.4.0
aiohttp==3.8.4
aiosignal==1.3.1
antlr4-python3-runtime==4.9.3
anyconfig==0.10.1
anyio==3.7.1
appdirs==1.4.4
argon2-cffi==21.3.0
argon2-cffi-bindings==21.2.0
arrow==1.2.3
astroid==2.15.6
asttokens==2.2.1
astunparse==1.6.3
async-timeout==4.0.2
attrs==23.1.0
aws-xray-sdk==0.95
azure-core==1.28.0
azure-datalake-store==0.0.53
azure-identity==1.13.0
azure-storage-blob==12.17.0
Babel==2.12.1
backcall==0.2.0
bandit==1.7.5
beautifulsoup4==4.12.2
behave==1.2.6
binaryornot==0.4.4
biopython==1.81
black==22.12.0
blacken-docs==1.9.2
bleach==6.0.0
blosc2==2.0.0
bokeh==3.1.1
boto==2.49.0
boto3==1.28.2
botocore==1.31.2
build==0.10.0
cachetools==5.3.1
certifi==2023.5.7
cffi==1.15.1
cfgv==3.3.1
chardet==5.1.0
charset-normalizer==3.2.0
click==8.1.4
click-plugins==1.1.1
cligj==0.7.2
cloudpickle==2.2.1
comm==0.1.3
compress-pickle==2.1.0
contourpy==1.1.0
cookiecutter==2.2.3
coverage==7.2.7
cryptography==41.0.2
cycler==0.11.0
Cython==0.29.36
dask==2021.12.0
db-dtypes==1.1.1
debugpy==1.6.7
decorator==5.1.1
defusedxml==0.7.1
delta-spark==1.2.1
dill==0.3.6
distlib==0.3.6
distributed==2021.12.0
docker==6.1.3
docopt==0.6.2
dynaconf==3.1.12
ecdsa==0.18.0
et-xmlfile==1.1.0
exceptiongroup==1.1.2
execnet==2.0.2
executing==1.2.0
fastjsonschema==2.17.1
filelock==3.12.2
Fiona==1.9.4.post1
flatbuffers==23.5.26
frozenlist==1.3.3
fs==2.4.16
fsspec==2023.1.0
future==0.18.3
gast==0.4.0
gcsfs==2023.1.0
geopandas==0.13.2
gitdb==4.0.10
gitdb2==4.0.2
GitPython==3.0.6
google-api-core==2.11.1
google-auth==2.22.0
google-auth-oauthlib==1.0.0
google-cloud-bigquery==3.11.3
google-cloud-bigquery-storage==2.22.0
google-cloud-core==2.3.3
google-cloud-storage==2.10.0
google-crc32c==1.5.0
google-pasta==0.2.0
google-resumable-media==2.5.0
googleapis-common-protos==1.59.1
greenlet==2.0.2
grimp==2.5
grpcio==1.56.0
grpcio-status==1.56.0
h5py==3.9.0
hdfs==2.7.0
holoviews==1.13.5
identify==2.5.24
idna==3.4
import-linter==1.8.0
importlib-metadata==6.8.0
importlib-resources==6.0.0
iniconfig==2.0.0
ipykernel==6.24.0
ipython==8.12.2
ipython-genutils==0.2.0
ipywidgets==8.0.7
isodate==0.6.1
isort==5.12.0
jedi==0.18.2
Jinja2==3.0.3
jmespath==0.10.0
joblib==1.3.1
json5==0.9.14
jsondiff==1.1.1
jsonpickle==3.0.1
jsonschema==4.18.1
jsonschema-specifications==2023.6.1
jupyter==1.0.0
jupyter-console==6.6.3
jupyter-server==1.24.0
jupyter_client==8.3.0
jupyter_core==5.3.1
jupyterlab==3.5.3
jupyterlab-pygments==0.2.2
jupyterlab-widgets==3.0.8
jupyterlab_server==2.15.2
-e git+https://github.com/kedro-org/kedro.git@dd04cb0503fdcff2076274f9ecfb61df88a7a808#egg=kedro
keras==2.13.1
kiwisolver==1.4.4
lazy-object-proxy==1.9.0
libclang==16.0.0
linkify-it-py==2.0.2
locket==1.0.0
lxml==4.9.3
lz4==4.3.2
Markdown==3.4.3
markdown-it-py==3.0.0
MarkupSafe==2.1.3
matplotlib==3.3.4
matplotlib-inline==0.1.6
mccabe==0.7.0
mdit-py-plugins==0.4.0
mdurl==0.1.2
memory-profiler==0.61.0
mistune==3.0.1
mock==5.1.0
more-itertools==9.1.0
moto==1.3.7
msal==1.22.0
msal-extensions==1.0.0
msgpack==1.0.5
multidict==6.0.4
mypy-extensions==1.0.0
nbclassic==1.0.0
nbclient==0.8.0
nbconvert==7.6.0
nbformat==5.9.1
nest-asyncio==1.5.6
networkx==2.8.8
nodeenv==1.8.0
notebook==6.5.4
notebook_shim==0.2.3
numexpr==2.8.4
numpy==1.22.4
oauthlib==3.2.2
omegaconf==2.3.0
opencv-python==4.5.5.64
openpyxl==3.1.2
opt-einsum==3.3.0
packaging==23.1
pandas==1.5.3
pandas-gbq==0.17.9
pandocfilters==1.5.0
panel==1.2.0
param==1.13.0
parse==1.19.1
parse-type==0.6.2
parso==0.8.3
partd==1.4.0
pathspec==0.11.1
pbr==5.11.1
pexpect==4.8.0
pickleshare==0.7.5
Pillow==9.5.0
pip-tools==6.14.0
pkgutil_resolve_name==1.3.10
platformdirs==3.8.1
plotly==5.15.0
pluggy==1.2.0
portalocker==2.7.0
pre-commit==2.21.0
prometheus-client==0.17.1
prompt-toolkit==3.0.39
proto-plus==1.22.3
protobuf==4.23.4
psutil==5.9.5
ptyprocess==0.7.0
pure-eval==0.2.2
py==1.11.0
py-cpuinfo==9.0.0
py4j==0.10.9.5
pyaml==23.7.0
pyarrow==9.0.0
pyasn1==0.5.0
pyasn1-modules==0.3.0
pycparser==2.21
pycryptodome==3.18.0
pydata-google-auth==1.8.1
Pygments==2.15.1
PyJWT==2.7.0
pylint==2.17.4
pyparsing==3.1.0
pyproj==3.5.0
pyproject_hooks==1.0.0
pyspark==3.2.4
pytest==7.4.0
pytest-cov==3.0.0
pytest-forked==1.6.0
pytest-mock==1.13.0
pytest-xdist==2.2.1
python-dateutil==2.8.2
python-jose==2.0.2
python-slugify==8.0.1
pytoolconfig==1.2.5
pytz==2023.3
pyviz-comms==2.3.2
PyYAML==6.0
pyzmq==25.1.0
qtconsole==5.4.3
QtPy==2.3.1
redis==4.6.0
referencing==0.29.1
requests==2.31.0
requests-mock==1.11.0
requests-oauthlib==1.3.1
responses==0.23.1
rich==13.4.2
rope==1.9.0
rpds-py==0.8.10
rsa==4.9
s3fs==0.4.2
s3transfer==0.6.1
scikit-learn==1.0.2
scipy==1.7.3
Send2Trash==1.8.2
shapely==2.0.1
six==1.16.0
smmap==5.0.0
sniffio==1.3.0
sortedcontainers==2.4.0
soupsieve==2.4.1
SQLAlchemy==1.4.49
stack-data==0.6.2
stevedore==5.1.0
tables==3.8.0
tblib==2.0.0
tenacity==8.2.2
tensorboard==2.13.0
tensorboard-data-server==0.7.1
tensorflow==2.13.0
tensorflow-estimator==2.13.0
tensorflow-io-gcs-filesystem==0.32.0
termcolor==2.3.0
terminado==0.17.1
text-unidecode==1.3
threadpoolctl==3.1.0
tinycss2==1.2.1
toml==0.10.2
tomli==2.0.1
tomlkit==0.11.8
toolz==0.12.0
toposort==1.10
tornado==6.3.2
tqdm==4.65.0
traitlets==5.9.0
triad==0.9.1
truffleHog==2.2.1
truffleHogRegexes==0.0.7
types-PyYAML==6.0.12.10
typing_extensions==4.5.0
uc-micro-py==1.0.2
urllib3==1.26.16
virtualenv==20.23.1
wcwidth==0.2.6
webencodings==0.5.1
websocket-client==1.6.1
Werkzeug==2.3.6
widgetsnbextension==4.0.8
wrapt==1.15.0
XlsxWriter==1.4.5
xmltodict==0.13.0
xyzservices==2023.5.0
yarl==1.9.2
zict==3.0.0
zipp==3.16.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions