kedro-org / kedro

Kedro is a toolbox for production-ready data science. It uses software engineering best practices to help you create data engineering and data science pipelines that are reproducible, maintainable, and modular.
https://kedro.org
Apache License 2.0
9.88k stars 896 forks source link

<Title> #1253

Closed shaunc closed 2 years ago

shaunc commented 2 years ago

Description

I am trying to write a plugin for kedro -- see https://github.com/kedro-org/kedro/discussions/837#discussioncomment-2122783

I have written a stub to test plugin, and provided setup.py as:

# -*- coding: utf-8 -*-
from setuptools import setup, find_packages

package_dir = \
{'': 'src'}

package_data = \
{'': ['*']}

install_requires = \
['dvc>=2.9.3,<3.0.0',
 'kedro>=0.17.6,<0.19',
 'numpy>=1.22.2,<2.0.0']

setup_kwargs = {
    'name': 'kedro_dvc',
    'version': '0.2.0',
    'description': 'Kedro-DVC integration to track and distribute experiments.',
    'long_description': None,
    'author': 'Shaun Cutts',
    'author_email': 'shaunc@factfiber.com',
    'maintainer': None,
    'maintainer_email': None,
    'url': None,
    'package_dir': package_dir,
    'packages': find_packages(),
    'package_data': package_data,
    'install_requires': install_requires,
    'python_requires': '>=3.8,<3.9',
    'entry_points': {
        "kedro.project_commands": ["dvc = kedro_dvc.plugin:commands"]},
}

setup(**setup_kwargs)

To test, in a .gitignored subdirectory, I have created a test project using kedro new. I install the standard requirements, then try to install my plugin via, which causes an error:

% pip install src/requirements.txt
% pip install -v -e ../..
Using pip 22.0.3 from /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages/pip (python 3.8)
Obtaining file:///Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc
  Running command pip subprocess to install build dependencies
  Collecting poetry-core>=1.0.0
    Using cached poetry_core-1.0.7-py2.py3-none-any.whl (424 kB)
  Installing collected packages: poetry-core
  Successfully installed poetry-core-1.0.7
  Installing build dependencies ... done
  Running command Checking if build backend supports build_editable
  Checking if build backend supports build_editable ... done
  Running command Getting requirements to build wheel
  Getting requirements to build wheel ... done
  Running command Preparing metadata (pyproject.toml)
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: dvc<3.0.0,>=2.9.3 in ./env/kedro-env/lib/python3.8/site-packages (from kedro-dvc==0.2.0) (2.9.3)
Requirement already satisfied: numpy<2.0.0,>=1.22.2 in ./env/kedro-env/lib/python3.8/site-packages (from kedro-dvc==0.2.0) (1.22.2)
Requirement already satisfied: kedro<0.19,>=0.17.6 in ./env/kedro-env/lib/python3.8/site-packages (from kedro-dvc==0.2.0) (0.17.6)
Requirement already satisfied: pyasn1>=0.4.1 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.4.8)
Requirement already satisfied: packaging>=19.0 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (21.3)
Requirement already satisfied: flatten-dict<1,>=0.4.1 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.4.2)
Requirement already satisfied: pydot>=1.2.4 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (1.4.2)
Requirement already satisfied: python-benedict>=0.24.2 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.24.3)
Requirement already satisfied: nanotime>=0.5.2 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.5.2)
Requirement already satisfied: typing-extensions>=3.7.4 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (4.1.1)
Requirement already satisfied: funcy>=1.14 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (1.17)
Requirement already satisfied: shortuuid>=0.5.0 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (1.0.8)
Requirement already satisfied: pygtrie>=2.3.2 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (2.4.2)
Requirement already satisfied: scmrepo==0.0.7 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.0.7)
Requirement already satisfied: pyparsing>=2.4.7 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (3.0.7)
Requirement already satisfied: appdirs>=1.4.3 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (1.4.4)
Requirement already satisfied: dictdiffer>=0.8.1 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.9.0)
Requirement already satisfied: diskcache>=5.2.1 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (5.4.0)
Requirement already satisfied: voluptuous>=0.11.7 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.12.2)
Requirement already satisfied: colorama>=0.3.9 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.4.4)
Requirement already satisfied: tabulate>=0.8.7 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.8.9)
Requirement already satisfied: rich>=10.13.0 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (11.2.0)
Requirement already satisfied: configobj>=5.0.6 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (5.0.6)
Requirement already satisfied: distro>=1.3.0 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (1.6.0)
Requirement already satisfied: toml>=0.10.1 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.10.2)
Requirement already satisfied: importlib-resources>=5.2.2 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (5.4.0)
Requirement already satisfied: ply>=3.9 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (3.11)
Requirement already satisfied: ruamel.yaml>=0.17.11 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.17.21)
Requirement already satisfied: pathspec<0.10.0,>=0.9.0 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.9.0)
Requirement already satisfied: grandalf==0.6 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.6)
Requirement already satisfied: tqdm<5,>=4.45.0 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (4.62.3)
Requirement already satisfied: requests>=2.22.0 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (2.25.1)
Requirement already satisfied: dpath<3,>=2.0.2 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (2.0.6)
Requirement already satisfied: shtab<2,>=1.3.4 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (1.5.3)
Requirement already satisfied: psutil>=5.8.0 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (5.9.0)
Requirement already satisfied: fsspec[http]>=2021.10.1 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (2021.11.1)
Requirement already satisfied: aiohttp-retry>=2.4.5 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (2.4.6)
Requirement already satisfied: zc.lockfile>=1.2.1 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (2.0)
Requirement already satisfied: flufl.lock>=5 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (7.0)
Requirement already satisfied: networkx>=2.5 in ./env/kedro-env/lib/python3.8/site-packages (from dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (2.6.3)
Requirement already satisfied: future in ./env/kedro-env/lib/python3.8/site-packages (from grandalf==0.6->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.18.2)
Requirement already satisfied: pygit2>=1.5.0 in ./env/kedro-env/lib/python3.8/site-packages (from scmrepo==0.0.7->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (1.8.0)
Requirement already satisfied: gitpython>3 in ./env/kedro-env/lib/python3.8/site-packages (from scmrepo==0.0.7->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (3.1.26)
Requirement already satisfied: dulwich>=0.20.23 in ./env/kedro-env/lib/python3.8/site-packages (from scmrepo==0.0.7->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.20.32)
Requirement already satisfied: asyncssh<2.9,>=2.7.1 in ./env/kedro-env/lib/python3.8/site-packages (from scmrepo==0.0.7->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (2.8.1)
Requirement already satisfied: dynaconf<4.0.0,>=3.1.2 in ./env/kedro-env/lib/python3.8/site-packages (from kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (3.1.7)
Requirement already satisfied: cachetools~=4.1 in ./env/kedro-env/lib/python3.8/site-packages (from kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (4.2.4)
Requirement already satisfied: jupyter-client<7.0,>=5.1 in ./env/kedro-env/lib/python3.8/site-packages (from kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (6.1.12)
Requirement already satisfied: setuptools>=38.0 in ./env/kedro-env/lib/python3.8/site-packages (from kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (57.4.0)
Requirement already satisfied: PyYAML<6.0,>=4.2 in ./env/kedro-env/lib/python3.8/site-packages (from kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (5.4.1)
Requirement already satisfied: pip-tools~=6.4 in ./env/kedro-env/lib/python3.8/site-packages (from kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (6.5.1)
Requirement already satisfied: jmespath<1.0,>=0.9.5 in ./env/kedro-env/lib/python3.8/site-packages (from kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (0.10.0)
Requirement already satisfied: click<8.0 in ./env/kedro-env/lib/python3.8/site-packages (from kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (7.1.2)
Requirement already satisfied: rope~=0.21.0 in ./env/kedro-env/lib/python3.8/site-packages (from kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (0.21.1)
Requirement already satisfied: python-json-logger~=2.0 in ./env/kedro-env/lib/python3.8/site-packages (from kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (2.0.2)
Requirement already satisfied: anyconfig~=0.10.0 in ./env/kedro-env/lib/python3.8/site-packages (from kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (0.10.1)
Requirement already satisfied: cookiecutter~=1.7.0 in ./env/kedro-env/lib/python3.8/site-packages (from kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (1.7.3)
Requirement already satisfied: toposort~=1.5 in ./env/kedro-env/lib/python3.8/site-packages (from kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (1.7)
Requirement already satisfied: pluggy~=0.13.0 in ./env/kedro-env/lib/python3.8/site-packages (from kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (0.13.1)
Requirement already satisfied: aiohttp in ./env/kedro-env/lib/python3.8/site-packages (from aiohttp-retry>=2.4.5->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (3.8.1)
Requirement already satisfied: six in ./env/kedro-env/lib/python3.8/site-packages (from configobj>=5.0.6->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (1.16.0)
Requirement already satisfied: python-slugify>=4.0.0 in ./env/kedro-env/lib/python3.8/site-packages (from cookiecutter~=1.7.0->kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (5.0.2)
Requirement already satisfied: binaryornot>=0.4.4 in ./env/kedro-env/lib/python3.8/site-packages (from cookiecutter~=1.7.0->kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (0.4.4)
Requirement already satisfied: Jinja2<4.0.0,>=2.7 in ./env/kedro-env/lib/python3.8/site-packages (from cookiecutter~=1.7.0->kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (3.0.3)
Requirement already satisfied: poyo>=0.5.0 in ./env/kedro-env/lib/python3.8/site-packages (from cookiecutter~=1.7.0->kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (0.5.0)
Requirement already satisfied: jinja2-time>=0.2.0 in ./env/kedro-env/lib/python3.8/site-packages (from cookiecutter~=1.7.0->kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (0.2.0)
Requirement already satisfied: atpublic>=2.3 in ./env/kedro-env/lib/python3.8/site-packages (from flufl.lock>=5->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (3.0.1)
Requirement already satisfied: gitdb<5,>=4.0.1 in ./env/kedro-env/lib/python3.8/site-packages (from gitpython>3->scmrepo==0.0.7->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (4.0.9)
Requirement already satisfied: zipp>=3.1.0 in ./env/kedro-env/lib/python3.8/site-packages (from importlib-resources>=5.2.2->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (3.7.0)
Requirement already satisfied: tornado>=4.1 in ./env/kedro-env/lib/python3.8/site-packages (from jupyter-client<7.0,>=5.1->kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (6.1)
Requirement already satisfied: jupyter-core>=4.6.0 in ./env/kedro-env/lib/python3.8/site-packages (from jupyter-client<7.0,>=5.1->kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (4.9.1)
Requirement already satisfied: pyzmq>=13 in ./env/kedro-env/lib/python3.8/site-packages (from jupyter-client<7.0,>=5.1->kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (22.3.0)
Requirement already satisfied: python-dateutil>=2.1 in ./env/kedro-env/lib/python3.8/site-packages (from jupyter-client<7.0,>=5.1->kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (2.8.2)
Requirement already satisfied: traitlets in ./env/kedro-env/lib/python3.8/site-packages (from jupyter-client<7.0,>=5.1->kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (5.1.1)
Requirement already satisfied: pip>=21.2 in ./env/kedro-env/lib/python3.8/site-packages (from pip-tools~=6.4->kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (22.0.3)
Requirement already satisfied: pep517 in ./env/kedro-env/lib/python3.8/site-packages (from pip-tools~=6.4->kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (0.12.0)
Requirement already satisfied: wheel in ./env/kedro-env/lib/python3.8/site-packages (from pip-tools~=6.4->kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (0.36.2)
Requirement already satisfied: xmltodict in ./env/kedro-env/lib/python3.8/site-packages (from python-benedict>=0.24.2->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.12.0)
Requirement already satisfied: mailchecker in ./env/kedro-env/lib/python3.8/site-packages (from python-benedict>=0.24.2->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (4.1.11)
Requirement already satisfied: ftfy in ./env/kedro-env/lib/python3.8/site-packages (from python-benedict>=0.24.2->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (6.1.1)
Requirement already satisfied: phonenumbers in ./env/kedro-env/lib/python3.8/site-packages (from python-benedict>=0.24.2->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (8.12.43)
Requirement already satisfied: python-fsutil in ./env/kedro-env/lib/python3.8/site-packages (from python-benedict>=0.24.2->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.6.0)
Requirement already satisfied: certifi>=2017.4.17 in ./env/kedro-env/lib/python3.8/site-packages (from requests>=2.22.0->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (2021.10.8)
Requirement already satisfied: chardet<5,>=3.0.2 in ./env/kedro-env/lib/python3.8/site-packages (from requests>=2.22.0->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (4.0.0)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in ./env/kedro-env/lib/python3.8/site-packages (from requests>=2.22.0->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (1.26.8)
Requirement already satisfied: idna<3,>=2.5 in ./env/kedro-env/lib/python3.8/site-packages (from requests>=2.22.0->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (2.10)
Requirement already satisfied: pygments<3.0.0,>=2.6.0 in ./env/kedro-env/lib/python3.8/site-packages (from rich>=10.13.0->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (2.11.2)
Requirement already satisfied: commonmark<0.10.0,>=0.9.0 in ./env/kedro-env/lib/python3.8/site-packages (from rich>=10.13.0->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.9.1)
Requirement already satisfied: ruamel.yaml.clib>=0.2.6 in ./env/kedro-env/lib/python3.8/site-packages (from ruamel.yaml>=0.17.11->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.2.6)
Requirement already satisfied: cryptography>=2.8 in ./env/kedro-env/lib/python3.8/site-packages (from asyncssh<2.9,>=2.7.1->scmrepo==0.0.7->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (36.0.1)
Requirement already satisfied: smmap<6,>=3.0.1 in ./env/kedro-env/lib/python3.8/site-packages (from gitdb<5,>=4.0.1->gitpython>3->scmrepo==0.0.7->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (5.0.0)
Requirement already satisfied: MarkupSafe>=2.0 in ./env/kedro-env/lib/python3.8/site-packages (from Jinja2<4.0.0,>=2.7->cookiecutter~=1.7.0->kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (2.0.1)
Requirement already satisfied: arrow in ./env/kedro-env/lib/python3.8/site-packages (from jinja2-time>=0.2.0->cookiecutter~=1.7.0->kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (1.2.2)
Requirement already satisfied: cffi>=1.4.0 in ./env/kedro-env/lib/python3.8/site-packages (from pygit2>=1.5.0->scmrepo==0.0.7->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (1.15.0)
Requirement already satisfied: text-unidecode>=1.3 in ./env/kedro-env/lib/python3.8/site-packages (from python-slugify>=4.0.0->cookiecutter~=1.7.0->kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (1.3)
Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in ./env/kedro-env/lib/python3.8/site-packages (from aiohttp->aiohttp-retry>=2.4.5->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (4.0.2)
Requirement already satisfied: aiosignal>=1.1.2 in ./env/kedro-env/lib/python3.8/site-packages (from aiohttp->aiohttp-retry>=2.4.5->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (1.2.0)
Requirement already satisfied: multidict<7.0,>=4.5 in ./env/kedro-env/lib/python3.8/site-packages (from aiohttp->aiohttp-retry>=2.4.5->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (6.0.2)
Requirement already satisfied: yarl<2.0,>=1.0 in ./env/kedro-env/lib/python3.8/site-packages (from aiohttp->aiohttp-retry>=2.4.5->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (1.7.2)
Requirement already satisfied: frozenlist>=1.1.1 in ./env/kedro-env/lib/python3.8/site-packages (from aiohttp->aiohttp-retry>=2.4.5->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (1.3.0)
Requirement already satisfied: attrs>=17.3.0 in ./env/kedro-env/lib/python3.8/site-packages (from aiohttp->aiohttp-retry>=2.4.5->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (21.4.0)
Requirement already satisfied: charset-normalizer<3.0,>=2.0 in ./env/kedro-env/lib/python3.8/site-packages (from aiohttp->aiohttp-retry>=2.4.5->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (2.0.12)
Requirement already satisfied: wcwidth>=0.2.5 in ./env/kedro-env/lib/python3.8/site-packages (from ftfy->python-benedict>=0.24.2->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (0.2.5)
Requirement already satisfied: tomli>=1.1.0 in ./env/kedro-env/lib/python3.8/site-packages (from pep517->pip-tools~=6.4->kedro<0.19,>=0.17.6->kedro-dvc==0.2.0) (2.0.1)
Requirement already satisfied: pycparser in ./env/kedro-env/lib/python3.8/site-packages (from cffi>=1.4.0->pygit2>=1.5.0->scmrepo==0.0.7->dvc<3.0.0,>=2.9.3->kedro-dvc==0.2.0) (2.21)
Installing collected packages: kedro-dvc
  Running setup.py develop for kedro-dvc
    Running command python setup.py develop
    ERROR: Can not execute `setup.py` since setuptools is not available in the build environment.
    error: subprocess-exited-with-error

    × python setup.py develop did not run successfully.
    │ exit code: 1
    ╰─> See above for output.

    note: This error originates from a subprocess, and is likely not a problem with pip.
    full command: /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin/python -c '
    exec(compile('"'"''"'"''"'"'
    # This is <pip-setuptools-caller> -- a caller that pip uses to run setup.py
    #
    # - It imports setuptools before invoking setup.py, to enable projects that directly
    #   import from `distutils.core` to work with newer packaging standards.
    # - It provides a clear error message when setuptools is not installed.
    # - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so
    #   setuptools doesn'"'"'t think the script is `-c`. This avoids the following warning:
    #     manifest_maker: standard file '"'"'-c'"'"' not found".
    # - It generates a shim setup.py, for handling setup.cfg-only projects.
    import os, sys, tokenize

    try:
        import setuptools
    except ImportError as error:
        print(
            "ERROR: Can not execute `setup.py` since setuptools is not available in "
            "the build environment.",
            file=sys.stderr,
        )
        sys.exit(1)

    __file__ = %r
    sys.argv[0] = __file__

    if os.path.exists(__file__):
        filename = __file__
        with tokenize.open(__file__) as f:
            setup_py_code = f.read()
    else:
        filename = "<auto-generated setuptools caller>"
        setup_py_code = "from setuptools import setup; setup()"

    exec(compile(setup_py_code, filename, "exec"))
    '"'"''"'"''"'"' % ('"'"'/Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/setup.py'"'"',), "<pip-setuptools-caller>", "exec"))' develop --no-deps

Note, however, I can manually run the setup.py:

python ../../setup.py develop
running develop
running egg_info
writing src/kedro_dvc.egg-info/PKG-INFO
writing dependency_links to src/kedro_dvc.egg-info/dependency_links.txt
writing entry points to src/kedro_dvc.egg-info/entry_points.txt
writing requirements to src/kedro_dvc.egg-info/requires.txt
writing top-level names to src/kedro_dvc.egg-info/top_level.txt
reading manifest file 'src/kedro_dvc.egg-info/SOURCES.txt'
writing manifest file 'src/kedro_dvc.egg-info/SOURCES.txt'
running build_ext
Creating /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages/kedro-dvc.egg-link (link to src)
Adding kedro-dvc 0.2.0 to easy-install.pth file

Installed /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/src
Processing dependencies for kedro-dvc==0.2.0
Searching for numpy==1.22.2
Best match: numpy 1.22.2
Adding numpy 1.22.2 to easy-install.pth file
Installing f2py script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin
Installing f2py3 script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin
Installing f2py3.8 script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for kedro==0.17.6
Best match: kedro 0.17.6
Adding kedro 0.17.6 to easy-install.pth file
Installing kedro script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for dvc==2.9.3
Best match: dvc 2.9.3
Adding dvc 2.9.3 to easy-install.pth file
Installing dvc script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for click==7.1.2
Best match: click 7.1.2
Adding click 7.1.2 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for fsspec==2021.11.1
Best match: fsspec 2021.11.1
Adding fsspec 2021.11.1 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for dynaconf==3.1.7
Best match: dynaconf 3.1.7
Adding dynaconf 3.1.7 to easy-install.pth file
Installing dynaconf script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for jmespath==0.10.0
Best match: jmespath 0.10.0
Adding jmespath 0.10.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for jupyter-client==6.1.12
Best match: jupyter-client 6.1.12
Adding jupyter-client 6.1.12 to easy-install.pth file
Installing jupyter-kernel script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin
Installing jupyter-kernelspec script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin
Installing jupyter-run script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for python-json-logger==2.0.2
Best match: python-json-logger 2.0.2
Adding python-json-logger 2.0.2 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for pip-tools==6.5.1
Best match: pip-tools 6.5.1
Adding pip-tools 6.5.1 to easy-install.pth file
Installing pip-compile script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin
Installing pip-sync script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for anyconfig==0.10.1
Best match: anyconfig 0.10.1
Adding anyconfig 0.10.1 to easy-install.pth file
Installing anyconfig_cli script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for cachetools==4.2.4
Best match: cachetools 4.2.4
Adding cachetools 4.2.4 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for toposort==1.7
Best match: toposort 1.7
Adding toposort 1.7 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for toml==0.10.2
Best match: toml 0.10.2
Adding toml 0.10.2 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for pluggy==0.13.1
Best match: pluggy 0.13.1
Adding pluggy 0.13.1 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for PyYAML==5.4.1
Best match: PyYAML 5.4.1
Adding PyYAML 5.4.1 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for setuptools==57.4.0
Best match: setuptools 57.4.0
Adding setuptools 57.4.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for rope==0.21.1
Best match: rope 0.21.1
Adding rope 0.21.1 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for cookiecutter==1.7.3
Best match: cookiecutter 1.7.3
Adding cookiecutter 1.7.3 to easy-install.pth file
Installing cookiecutter script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for GitPython==3.1.26
Best match: GitPython 3.1.26
Adding GitPython 3.1.26 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for voluptuous==0.12.2
Best match: voluptuous 0.12.2
Adding voluptuous 0.12.2 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for configobj==5.0.6
Best match: configobj 5.0.6
Adding configobj 5.0.6 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for requests==2.25.1
Best match: requests 2.25.1
Adding requests 2.25.1 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for ruamel.yaml==0.17.21
Best match: ruamel.yaml 0.17.21
Adding ruamel.yaml 0.17.21 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for dpath==2.0.6
Best match: dpath 2.0.6
Adding dpath 2.0.6 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for nanotime==0.5.2
Best match: nanotime 0.5.2
Adding nanotime 0.5.2 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for pygtrie==2.4.2
Best match: pygtrie 2.4.2
Adding pygtrie 2.4.2 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for tabulate==0.8.9
Best match: tabulate 0.8.9
Adding tabulate 0.8.9 to easy-install.pth file
Installing tabulate script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for importlib-resources==5.4.0
Best match: importlib-resources 5.4.0
Adding importlib-resources 5.4.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for flufl.lock==7.0
Best match: flufl.lock 7.0
Adding flufl.lock 7.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for colorama==0.4.4
Best match: colorama 0.4.4
Adding colorama 0.4.4 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for psutil==5.9.0
Best match: psutil 5.9.0
Adding psutil 5.9.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for funcy==1.17
Best match: funcy 1.17
Adding funcy 1.17 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for python-benedict==0.24.3
Best match: python-benedict 0.24.3
Adding python-benedict 0.24.3 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for ply==3.11
Best match: ply 3.11
Adding ply 3.11 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for distro==1.6.0
Best match: distro 1.6.0
Adding distro 1.6.0 to easy-install.pth file
Installing distro script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for rich==11.2.0
Best match: rich 11.2.0
Adding rich 11.2.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for aiohttp-retry==2.4.6
Best match: aiohttp-retry 2.4.6
Adding aiohttp-retry 2.4.6 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for tqdm==4.62.3
Best match: tqdm 4.62.3
Adding tqdm 4.62.3 to easy-install.pth file
Installing tqdm script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for dictdiffer==0.9.0
Best match: dictdiffer 0.9.0
Adding dictdiffer 0.9.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for pyparsing==3.0.7
Best match: pyparsing 3.0.7
Adding pyparsing 3.0.7 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for shtab==1.5.3
Best match: shtab 1.5.3
Adding shtab 1.5.3 to easy-install.pth file
Installing shtab script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for scmrepo==0.0.7
Best match: scmrepo 0.0.7
Adding scmrepo 0.0.7 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for appdirs==1.4.4
Best match: appdirs 1.4.4
Adding appdirs 1.4.4 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for grandalf==0.6
Best match: grandalf 0.6
Adding grandalf 0.6 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for flatten-dict==0.4.2
Best match: flatten-dict 0.4.2
Adding flatten-dict 0.4.2 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for zc.lockfile==2.0
Best match: zc.lockfile 2.0
Adding zc.lockfile 2.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for pyasn1==0.4.8
Best match: pyasn1 0.4.8
Adding pyasn1 0.4.8 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for pathspec==0.9.0
Best match: pathspec 0.9.0
Adding pathspec 0.9.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for pydot==1.4.2
Best match: pydot 1.4.2
Adding pydot 1.4.2 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for shortuuid==1.0.8
Best match: shortuuid 1.0.8
Adding shortuuid 1.0.8 to easy-install.pth file
Installing shortuuid script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for packaging==21.3
Best match: packaging 21.3
Adding packaging 21.3 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for typing-extensions==4.1.1
Best match: typing-extensions 4.1.1
Adding typing-extensions 4.1.1 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for networkx==2.6.3
Best match: networkx 2.6.3
Adding networkx 2.6.3 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for diskcache==5.4.0
Best match: diskcache 5.4.0
Adding diskcache 5.4.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for traitlets==5.1.1
Best match: traitlets 5.1.1
Adding traitlets 5.1.1 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for python-dateutil==2.8.2
Best match: python-dateutil 2.8.2
Adding python-dateutil 2.8.2 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for pyzmq==22.3.0
Best match: pyzmq 22.3.0
Adding pyzmq 22.3.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for jupyter-core==4.9.1
Best match: jupyter-core 4.9.1
Adding jupyter-core 4.9.1 to easy-install.pth file
Installing jupyter script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin
Installing jupyter-migrate script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin
Installing jupyter-troubleshoot script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for tornado==6.1
Best match: tornado 6.1
Adding tornado 6.1 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for pip==22.0.3
Best match: pip 22.0.3
Adding pip 22.0.3 to easy-install.pth file
Installing pip script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin
Installing pip3 script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin
Installing pip3.9 script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for pep517==0.12.0
Best match: pep517 0.12.0
Adding pep517 0.12.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for wheel==0.36.2
Best match: wheel 0.36.2
Adding wheel 0.36.2 to easy-install.pth file
Installing wheel script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for python-slugify==5.0.2
Best match: python-slugify 5.0.2
Adding python-slugify 5.0.2 to easy-install.pth file
Installing slugify script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for poyo==0.5.0
Best match: poyo 0.5.0
Adding poyo 0.5.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for jinja2-time==0.2.0
Best match: jinja2-time 0.2.0
Adding jinja2-time 0.2.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for binaryornot==0.4.4
Best match: binaryornot 0.4.4
Adding binaryornot 0.4.4 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for six==1.16.0
Best match: six 1.16.0
Adding six 1.16.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for Jinja2==3.0.3
Best match: Jinja2 3.0.3
Adding Jinja2 3.0.3 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for gitdb==4.0.9
Best match: gitdb 4.0.9
Adding gitdb 4.0.9 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for certifi==2021.10.8
Best match: certifi 2021.10.8
Adding certifi 2021.10.8 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for idna==2.10
Best match: idna 2.10
Adding idna 2.10 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for urllib3==1.26.8
Best match: urllib3 1.26.8
Adding urllib3 1.26.8 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for chardet==4.0.0
Best match: chardet 4.0.0
Adding chardet 4.0.0 to easy-install.pth file
Installing chardetect script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for ruamel.yaml.clib==0.2.6
Best match: ruamel.yaml.clib 0.2.6
Adding ruamel.yaml.clib 0.2.6 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for zipp==3.7.0
Best match: zipp 3.7.0
Adding zipp 3.7.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for atpublic==3.0.1
Best match: atpublic 3.0.1
Adding atpublic 3.0.1 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for aiohttp==3.8.1
Best match: aiohttp 3.8.1
Adding aiohttp 3.8.1 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for ftfy==6.1.1
Best match: ftfy 6.1.1
Adding ftfy 6.1.1 to easy-install.pth file
Installing ftfy script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for python-fsutil==0.6.0
Best match: python-fsutil 0.6.0
Adding python-fsutil 0.6.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for xmltodict==0.12.0
Best match: xmltodict 0.12.0
Adding xmltodict 0.12.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for mailchecker==4.1.11
Best match: mailchecker 4.1.11
Adding mailchecker 4.1.11 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for phonenumbers==8.12.43
Best match: phonenumbers 8.12.43
Adding phonenumbers 8.12.43 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for commonmark==0.9.1
Best match: commonmark 0.9.1
Adding commonmark 0.9.1 to easy-install.pth file
Installing cmark script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for Pygments==2.11.2
Best match: Pygments 2.11.2
Adding Pygments 2.11.2 to easy-install.pth file
Installing pygmentize script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for pygit2==1.8.0
Best match: pygit2 1.8.0
Adding pygit2 1.8.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for asyncssh==2.8.1
Best match: asyncssh 2.8.1
Adding asyncssh 2.8.1 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for dulwich==0.20.32
Best match: dulwich 0.20.32
Adding dulwich 0.20.32 to easy-install.pth file
Installing dulwich script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for future==0.18.2
Best match: future 0.18.2
Adding future 0.18.2 to easy-install.pth file
Installing futurize script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin
Installing pasteurize script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for tomli==2.0.1
Best match: tomli 2.0.1
Adding tomli 2.0.1 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for text-unidecode==1.3
Best match: text-unidecode 1.3
Adding text-unidecode 1.3 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for arrow==1.2.2
Best match: arrow 1.2.2
Adding arrow 1.2.2 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for MarkupSafe==2.0.1
Best match: MarkupSafe 2.0.1
Adding MarkupSafe 2.0.1 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for smmap==5.0.0
Best match: smmap 5.0.0
Adding smmap 5.0.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for async-timeout==4.0.2
Best match: async-timeout 4.0.2
Adding async-timeout 4.0.2 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for attrs==21.4.0
Best match: attrs 21.4.0
Adding attrs 21.4.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for charset-normalizer==2.0.12
Best match: charset-normalizer 2.0.12
Adding charset-normalizer 2.0.12 to easy-install.pth file
Installing normalizer script to /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/bin

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for multidict==6.0.2
Best match: multidict 6.0.2
Adding multidict 6.0.2 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for frozenlist==1.3.0
Best match: frozenlist 1.3.0
Adding frozenlist 1.3.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for yarl==1.7.2
Best match: yarl 1.7.2
Adding yarl 1.7.2 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for aiosignal==1.2.0
Best match: aiosignal 1.2.0
Adding aiosignal 1.2.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for wcwidth==0.2.5
Best match: wcwidth 0.2.5
Adding wcwidth 0.2.5 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for cffi==1.15.0
Best match: cffi 1.15.0
Adding cffi 1.15.0 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for cryptography==36.0.1
Best match: cryptography 36.0.1
Adding cryptography 36.0.1 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Searching for pycparser==2.21
Best match: pycparser 2.21
Adding pycparser 2.21 to easy-install.pth file

Using /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages
Finished processing dependencies for kedro-dvc==0.2.0

However, in this case, the plugin doesn't seem to register properly:

% kedro info

 _            _
| | _____  __| |_ __ ___
| |/ / _ \/ _` | '__/ _ \
|   <  __/ (_| | | | (_) |
|_|\_\___|\__,_|_|  \___/
v0.17.6

kedro allows teams to create analytics
projects. It is developed as part of
the Kedro initiative at QuantumBlack.

No plugins installed

Your Environment

Include as many relevant details about the environment in which you experienced the bug:

% python --version
Python 3.8.5
% pip --version
pip 22.0.3 from /Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc/tmp/test/env/kedro-env/lib/python3.8/site-packages/pip (python 3.8)

Further remarks (feature request):

I wish you wouldn't use setuptools. I believe the entry point declarations could be put in pyproject.toml?

[project.entry_points."kedro.project_commands"]
dvc = "kedro_dvc.plugin:commands"
shaunc commented 2 years ago

Minimal example of problem I'm having:

To reproduce, clone into same directory, then in "child" run:

% python -m venv env/child
% source env/child/bin/activate
% pip install --upgrade pip
% pip install -r src/requirements.txt  # installs parent via -e ../parent
% kedro info
...
no plugins installed
shaunc commented 2 years ago

Aha -- the development version of kedro was installed by conda, and unfortunately that was taking precedence in the path. Sorry!

antonymilne commented 2 years ago

@shaunc Good to see you resolved it, but just a comment on setup.py vs. pyproject.toml...

I definitely sympathise with your preference here, and actually there's no reason you can't use pyproject.toml (or setup.cfg or whatever other system there may be) in favour of setup.py when developing a plugin. Here's a simple toy example where I changed from setup.py to pyproject.toml, and all seems to work ok. Our documentation is definitely not clear on this since it only talks about the setup.py configuration. A plugin is just a Python package, so anything which enables you to define entry points in the right way should work fine with kedro.

shaunc commented 2 years ago

Note from pip -- problem w/ "editable" install using poetry:

ERROR: Project file:///Users/shauncutts/src/factfiber.ai/mlops/kedro-dvc has a 'pyproject.toml' and its build backend is missing the 'build_editable' hook. Since it does not have a 'setup.py' nor a 'setup.cfg', it cannot be installed in editable mode. Consider using a build backend that supports PEP 660. (child_env) (base) sh

However: https://github.com/python-poetry/poetry/issues/34#issuecomment-997519115

Suggests:

[build-system]
build-backend = "poetry.core.masonry.api"
requires = ["poetry-core @ git+https://github.com/python-poetry/poetry-core.git@master"]

which works! :)

shaunc commented 2 years ago

Oops! ... maybe I spoke too soon. It installs but don't see the hook. Maybe I'm doing something wrong... on the poetry side its not yet clear that this should work:

... but if it works for you then they have entry-points supported somewhere, at least....

UPDATE -- another "good news" entry to the good news/bad news chain -- :) -- was able to get working in a dummy project. Maybe my main project has already collected some hairballs. Will report back when I figure it out. NB one thing to node is that editable install in this manner requires pip >=22 according to poetry people and my experience.

shaunc commented 2 years ago

Ok -- have it worked out thanks to comment by layday.

I've created a script to install dev version of (currently dummy) kedro-dvc plugin within a temporary project. Seems to work for me, at least. Was able to get everything into pyproject.toml using:

[build-system]
build-backend = "poetry.core.masonry.api"
requires = ["poetry-core @ git+https://github.com/python-poetry/poetry-core.git@master"]

# NB poetry does not (yet?) support pep 621
[tool.poetry.plugins."kedro.project_commands"]
dvc = "kedro_dvc.plugin:dvc"
antonymilne commented 2 years ago

Very nice - I've just run the script and it also works for me 👍

Given what you wrote above I don't really understand why project.entry_points.kedro.project_commands in pyproject.toml worked for me with pip install at all 😅 Was this just a fortunate coincidence? Sorry for leading you astray there!

antonymilne commented 2 years ago

P.S. very interesting to see how you handle dev setup. This is something I've been thinking about a lot recently when I added gitpod configuration to the kedro repo. The configuration there includes a stage that does kedro new with a starter to make a simple test project. On kedro-viz we have a larger demo project in the main branch of the repo itself which is used for testing stuff out (https://github.com/kedro-org/kedro-viz/blob/main/.gitpod.yml).

shaunc commented 2 years ago

Very nice - I've just run the script and it also works for me 👍

Given what you wrote above I don't really understand why project.entry_points.kedro.project_commands in pyproject.toml worked for me with pip install at all 😅 Was this just a fortunate coincidence? Sorry for leading you astray there!

Perhaps you had an ...egg-info/ left over from the setuptools build? That happened to me ... :)

vs dev environment -- thanks! ... hmm... hadn't heard about gitpod -- so thanks as well! I considered vscode containers ... but didn't get around to setting up -- at least not yet....