diff --git a/Makefile b/Makefile
index 270d5d9252..f8172e6be0 100644
--- a/Makefile
+++ b/Makefile
@@ -4,8 +4,8 @@ package:
find . -regex ".*/__pycache__" -exec rm -rf {} +
find . -regex ".*\.egg-info" -exec rm -rf {} +
test -f package/kedro_viz/html/index.html || (echo "Built npm package not found; packaging process cancelled."; exit 1)
- cd package && python setup.py clean --all
- cd package && python setup.py sdist bdist_wheel
+ cd package && rm -rf build/ dist/
+ cd package && python -m build
build:
rm -rf build package/build package/dist package/kedro_viz/html pip-wheel-metadata package/kedro_viz.egg-info
diff --git a/README.md b/README.md
deleted file mode 100644
index 8b7158c12e..0000000000
--- a/README.md
+++ /dev/null
@@ -1,293 +0,0 @@
-# Kedro-Viz
-
-
-
-
-![Kedro-Viz Pipeline Visualisation](https://raw.githubusercontent.com/kedro-org/kedro-viz/main/.github/img/banner.png)
-
-
-
-
-โจ Data Science Pipelines. Beautifully Designed โจ
-
-Live Demo: https://demo.kedro.org/
-
-
-
-
-[![CircleCI](https://circleci.com/gh/kedro-org/kedro-viz/tree/main.svg?style=shield)](https://circleci.com/gh/kedro-org/kedro-viz/tree/main)
-[![Documentation](https://readthedocs.org/projects/kedro/badge/?version=stable)](https://docs.kedro.org/en/stable/visualisation/)
-[![Python Version](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11-orange.svg)](https://pypi.org/project/kedro-viz/)
-[![PyPI version](https://img.shields.io/pypi/v/kedro-viz.svg?color=yellow)](https://pypi.org/project/kedro-viz/)
-[![Downloads](https://static.pepy.tech/badge/kedro-viz/week)](https://pepy.tech/project/kedro-viz)
-[![npm version](https://img.shields.io/npm/v/@quantumblack/kedro-viz.svg?color=cc3534)](https://badge.fury.io/js/%40quantumblack%2Fkedro-viz)
-[![License](https://img.shields.io/badge/license-Apache%202.0-3da639.svg)](https://opensource.org/licenses/Apache-2.0)
-[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier)
-[![Slack Organisation](https://img.shields.io/badge/slack-chat-blueviolet.svg?label=Kedro%20Slack&logo=slack)](https://slack.kedro.org)
-
-## Introduction
-
-Kedro-Viz is an interactive development tool for building data science pipelines with [Kedro](https://github.com/kedro-org/kedro). Kedro-Viz also allows users to view and compare different runs in the Kedro project.
-
-## Features
-
-- โจ Complete visualisation of a Kedro project and its pipelines
-- ๐จ Supports light & dark themes out of the box
-- ๐ Scales to big pipelines with hundreds of nodes
-- ๐ Highly interactive, filterable and searchable
-- ๐ฌ Focus mode for modular pipeline visualisation
-- ๐ Rich metadata side panel to display parameters, plots, etc.
-- ๐ Supports all types of [Plotly charts](https://plotly.com/javascript/)
-- โป๏ธ Autoreload on code change
-- ๐งช Supports tracking and comparing runs in a Kedro project
-- ๐ฉ Many more to come
-
-## Installation
-
-There are two ways you can use Kedro-Viz:
-
-- As a [Kedro plugin](https://docs.kedro.org/en/stable/extend_kedro/plugins.html) (the most common way).
-
- To install Kedro-Viz as a Kedro plugin:
-
- ```bash
- pip install kedro-viz
- ```
-
-- As a standalone React component (for embedding Kedro-Viz in your web application).
-
- To install the standalone React component:
-
- ```bash
- npm install @quantumblack/kedro-viz
- ```
-
-## Usage
-
-#### Compatibility with Kedro and Kedro-datasets
-
-Ensure your `Kedro`, `Kedro-Viz` and `Kedro-datasets` versions are supported by referencing the following table:
-
-
-
- Python Version |
- Last Supported |
-
-
- |
- Kedro |
- Kedro-Viz |
- Kedro-datasets |
-
-
- 3.6 |
- 0.17.7 |
- 4.1.1 |
- - |
-
-
- 3.7 |
- 0.18.14 |
- 6.7.0 |
- 1.8.0 |
-
-
- 3.8 |
- Latest |
- 7.1.0 |
- 1.8.0 |
-
-
- >= 3.9 |
- Latest |
- Latest |
- Latest |
-
-
โ
-
-
-### CLI Usage
-
-To launch Kedro-Viz from the command line as a Kedro plugin, use the following command from the root folder of your Kedro project:
-
-```bash
-kedro viz run
-```
-
-A browser tab opens automatically to serve the visualisation at `http://127.0.0.1:4141/`.
-
-Kedro-Viz also supports the following additional arguments on the command line:
-
-```bash
-Usage: kedro viz run [OPTIONS]
-
- Visualise a Kedro pipeline using Kedro-Viz.
-
-Options:
- --host TEXT Host that viz will listen to. Defaults to
- localhost.
-
- --port INTEGER TCP port that viz will listen to. Defaults to
- 4141.
-
- --browser / --no-browser Whether to open viz interface in the default
- browser or not. Browser will only be opened if
- host is localhost. Defaults to True.
-
- --load-file FILE Path to load Kedro-Viz data from a directory
- --save-file FILE Path to save Kedro-Viz data to a directory
- -p, --pipeline TEXT Name of the registered pipeline to visualise. If not
- set, the default pipeline is visualised
-
- -e, --env TEXT Kedro configuration environment. If not specified,
- catalog config in `local` will be used
-
- --autoreload Autoreload viz server when a Python or YAML file change in
- the Kedro project
-
- --include-hooks A flag to include all registered hooks in your
- Kedro Project
-
- --params TEXT Specify extra parameters that you want to pass to
- the context initializer. Items must be separated
- by comma, keys - by colon, example:
- param1:value1,param2:value2. Each parameter is
- split by the first comma, so parameter values are
- allowed to contain colons, parameter keys are not.
- To pass a nested dictionary as parameter, separate
- keys by '.', example: param_group.param1:value1.
-
- -h, --help Show this message and exit.
-```
-
-To deploy Kedro-Viz from the command line as a Kedro plugin, use the following command from the root folder of your Kedro project:
-
-```bash
-kedro viz deploy
-```
-
-```bash
-Usage: kedro viz deploy [OPTIONS]
-
- Deploy and host Kedro Viz on AWS S3.
-
-Options:
- --platform TEXT Supported Cloud Platforms like ('aws', 'azure', 'gcp')
- to host Kedro Viz [required]
- --endpoint TEXT Static Website hosted endpoint.(eg., For AWS - http://.s3-website..amazonaws.com/)
- [required]
- --bucket-name TEXT Bucket name where Kedro Viz will be hosted [required]
- --include-hooks A flag to include all registered hooks in your Kedro
- Project
- --include-previews A flag to include preview for all the datasets
- -h, --help Show this message and exit.
-```
-
-To create a build directory of your local Kedro-Viz instance with static data from the command line, use the following command from the root folder of your Kedro project:
-
-```bash
-kedro viz build
-```
-
-```bash
-Usage: kedro viz build [OPTIONS]
-
- Create build directory of local Kedro Viz instance with Kedro project data
-
-Options:
- --include-hooks A flag to include all registered hooks in your Kedro
- Project
- --include-previews A flag to include preview for all the datasets
- -h, --help Show this message and exit.
-```
-
-### Experiment Tracking usage
-
-To enable [experiment tracking](https://docs.kedro.org/en/stable/experiment_tracking/index.html) in Kedro-Viz, you need to add the Kedro-Viz `SQLiteStore` to your Kedro project.
-
-This can be done by adding the below code to `settings.py` in the `src` folder of your Kedro project.
-
-```python
-from kedro_viz.integrations.kedro.sqlite_store import SQLiteStore
-from pathlib import Path
-SESSION_STORE_CLASS = SQLiteStore
-SESSION_STORE_ARGS = {"path": str(Path(__file__).parents[2] / "data")}
-```
-
-Once the above set-up is complete, tracking datasets can be used to track relevant data for Kedro runs. More information on how to use tracking datasets can be found in the [experiment tracking documentation](https://docs.kedro.org/en/stable/experiment_tracking/index.html)
-
-**Notes:**
-
-- Experiment Tracking is only available for Kedro-Viz >= 4.0.2 and Kedro >= 0.17.5
-- Prior to Kedro 0.17.6, when using tracking datasets, you will have to explicitly mark the datasets as `versioned` for it to show up properly in Kedro-Viz experiment tracking tab. From Kedro >= 0.17.6, this is done automatically:
-
-```yaml
-train_evaluation.r2_score_linear_regression:
- type: tracking.MetricsDataset
- filepath: ${base_location}/09_tracking/linear_score.json
- versioned: true
-```
-
-### Standalone React component usage
-
-To use Kedro-Viz as a standalone React component, you can follow the example below. However, please note that Kedro-Viz does not support server-side rendering (SSR). If you're using Next.js or another SSR framework, you should be aware of this limitation.
-
-```javascript
-import KedroViz from '@quantumblack/kedro-viz';
-import '@quantumblack/kedro-viz/lib/styles/styles.min.css';
-
-const MyApp = () => ;
-```
-
-To use with NextJS:
-
-```javascript
-import '@quantumblack/kedro-viz/lib/styles/styles.min.css';
-import dynamic from 'next/dynamic';
-
-const NoSSRKedro = dynamic(() => import('@quantumblack/kedro-viz'), {
- ssr: false,
-});
-
-const MyApp = () => ;
-```
-
-The JSON can be obtained by running:
-
-```bash
-kedro viz run --save-file=filename
-```
-
-We also recommend wrapping the `Kedro-Viz` component with a parent HTML/JSX element that has a specified height (as seen in the above example) in order for Kedro-Viz to be styled properly.
-
-**_Our documentation contains [additional examples on how to visualise with Kedro-Viz.](https://docs.kedro.org/en/stable/visualisation/index.html)_**
-
-## Feature Flags
-
-Kedro-Viz uses features flags to roll out some experimental features. The following flags are currently in use:
-
-| Flag | Description |
-| ------------------ | --------------------------------------------------------------------------------------- |
-| sizewarning | From release v3.9.1. Show a warning before rendering very large graphs (default `true`) |
-| expandAllPipelines | From release v4.3.2. Expand all modular pipelines on first load (default `false`) |
-
-To enable or disable a flag, click on the settings icon in the toolbar and toggle the flag on/off.
-
-Kedro-Viz also logs a message in your browser's [developer console](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_are_browser_developer_tools#The_JavaScript_console) to show the available flags and their values as currently set on your machine.
-
-## Maintainers
-
-Kedro-Viz is maintained by the [Kedro team](https://docs.kedro.org/en/stable/contribution/technical_steering_committee.html#kedro-maintainers) and a number of [contributors from across the world](https://github.com/kedro-org/Kedro-Viz/contributors).
-
-## Contribution
-
-If you want to contribute to Kedro-Viz, please check out our [contributing guide](./CONTRIBUTING.md).
-
-## License
-
-Kedro-Viz is licensed under the [Apache 2.0](https://github.com/kedro-org/kedro-viz/blob/main/LICENSE.md) License.
-
-## Citation
-
-If you're an academic, Kedro-Viz can also help you, for example, as a tool to visualise how your publication's pipeline is structured. Find our citation reference on [Zenodo](https://doi.org/10.5281/zenodo.4277218).
diff --git a/README.md b/README.md
new file mode 120000
index 0000000000..89d5ef5f22
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+package/README.md
\ No newline at end of file
diff --git a/RELEASE.md b/RELEASE.md
index 1466cd07f8..5a9bdd072c 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -22,6 +22,7 @@ Please follow the established format:
- Add "-p" flag to kedro-viz to match kedro run. (#1960)
- Fix bug related to nested namespace pipelines. (#1897)
- Migrate from `toposort` to `graphlib`. (#1942)
+- Fix packaging. (#1766)
- Adjust requirements file and dependabot versioning strategy. (#1978)
# Release 9.1.0
diff --git a/cypress/tests/ui/flowchart/menu.cy.js b/cypress/tests/ui/flowchart/menu.cy.js
index 276acd7ef3..dd7eb452c7 100644
--- a/cypress/tests/ui/flowchart/menu.cy.js
+++ b/cypress/tests/ui/flowchart/menu.cy.js
@@ -53,7 +53,7 @@ describe('Flowchart Menu', () => {
it('verifies that users can search/filter for a flowchart component using the search box. #TC-17', () => {
const searchInput = 'Ingestion';
- cy.get('.search-input__field').type(searchInput);
+ cy.get('.search-input__field').type(searchInput, { force: true });
// Pipeline Label in the Menu
cy.get('.pipeline-nodelist__row__label')
diff --git a/package/README.md b/package/README.md
new file mode 100644
index 0000000000..8b7158c12e
--- /dev/null
+++ b/package/README.md
@@ -0,0 +1,293 @@
+# Kedro-Viz
+
+
+
+
+![Kedro-Viz Pipeline Visualisation](https://raw.githubusercontent.com/kedro-org/kedro-viz/main/.github/img/banner.png)
+
+
+
+
+โจ Data Science Pipelines. Beautifully Designed โจ
+
+Live Demo: https://demo.kedro.org/
+
+
+
+
+[![CircleCI](https://circleci.com/gh/kedro-org/kedro-viz/tree/main.svg?style=shield)](https://circleci.com/gh/kedro-org/kedro-viz/tree/main)
+[![Documentation](https://readthedocs.org/projects/kedro/badge/?version=stable)](https://docs.kedro.org/en/stable/visualisation/)
+[![Python Version](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11-orange.svg)](https://pypi.org/project/kedro-viz/)
+[![PyPI version](https://img.shields.io/pypi/v/kedro-viz.svg?color=yellow)](https://pypi.org/project/kedro-viz/)
+[![Downloads](https://static.pepy.tech/badge/kedro-viz/week)](https://pepy.tech/project/kedro-viz)
+[![npm version](https://img.shields.io/npm/v/@quantumblack/kedro-viz.svg?color=cc3534)](https://badge.fury.io/js/%40quantumblack%2Fkedro-viz)
+[![License](https://img.shields.io/badge/license-Apache%202.0-3da639.svg)](https://opensource.org/licenses/Apache-2.0)
+[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier)
+[![Slack Organisation](https://img.shields.io/badge/slack-chat-blueviolet.svg?label=Kedro%20Slack&logo=slack)](https://slack.kedro.org)
+
+## Introduction
+
+Kedro-Viz is an interactive development tool for building data science pipelines with [Kedro](https://github.com/kedro-org/kedro). Kedro-Viz also allows users to view and compare different runs in the Kedro project.
+
+## Features
+
+- โจ Complete visualisation of a Kedro project and its pipelines
+- ๐จ Supports light & dark themes out of the box
+- ๐ Scales to big pipelines with hundreds of nodes
+- ๐ Highly interactive, filterable and searchable
+- ๐ฌ Focus mode for modular pipeline visualisation
+- ๐ Rich metadata side panel to display parameters, plots, etc.
+- ๐ Supports all types of [Plotly charts](https://plotly.com/javascript/)
+- โป๏ธ Autoreload on code change
+- ๐งช Supports tracking and comparing runs in a Kedro project
+- ๐ฉ Many more to come
+
+## Installation
+
+There are two ways you can use Kedro-Viz:
+
+- As a [Kedro plugin](https://docs.kedro.org/en/stable/extend_kedro/plugins.html) (the most common way).
+
+ To install Kedro-Viz as a Kedro plugin:
+
+ ```bash
+ pip install kedro-viz
+ ```
+
+- As a standalone React component (for embedding Kedro-Viz in your web application).
+
+ To install the standalone React component:
+
+ ```bash
+ npm install @quantumblack/kedro-viz
+ ```
+
+## Usage
+
+#### Compatibility with Kedro and Kedro-datasets
+
+Ensure your `Kedro`, `Kedro-Viz` and `Kedro-datasets` versions are supported by referencing the following table:
+
+
+
+ Python Version |
+ Last Supported |
+
+
+ |
+ Kedro |
+ Kedro-Viz |
+ Kedro-datasets |
+
+
+ 3.6 |
+ 0.17.7 |
+ 4.1.1 |
+ - |
+
+
+ 3.7 |
+ 0.18.14 |
+ 6.7.0 |
+ 1.8.0 |
+
+
+ 3.8 |
+ Latest |
+ 7.1.0 |
+ 1.8.0 |
+
+
+ >= 3.9 |
+ Latest |
+ Latest |
+ Latest |
+
+
โ
+
+
+### CLI Usage
+
+To launch Kedro-Viz from the command line as a Kedro plugin, use the following command from the root folder of your Kedro project:
+
+```bash
+kedro viz run
+```
+
+A browser tab opens automatically to serve the visualisation at `http://127.0.0.1:4141/`.
+
+Kedro-Viz also supports the following additional arguments on the command line:
+
+```bash
+Usage: kedro viz run [OPTIONS]
+
+ Visualise a Kedro pipeline using Kedro-Viz.
+
+Options:
+ --host TEXT Host that viz will listen to. Defaults to
+ localhost.
+
+ --port INTEGER TCP port that viz will listen to. Defaults to
+ 4141.
+
+ --browser / --no-browser Whether to open viz interface in the default
+ browser or not. Browser will only be opened if
+ host is localhost. Defaults to True.
+
+ --load-file FILE Path to load Kedro-Viz data from a directory
+ --save-file FILE Path to save Kedro-Viz data to a directory
+ -p, --pipeline TEXT Name of the registered pipeline to visualise. If not
+ set, the default pipeline is visualised
+
+ -e, --env TEXT Kedro configuration environment. If not specified,
+ catalog config in `local` will be used
+
+ --autoreload Autoreload viz server when a Python or YAML file change in
+ the Kedro project
+
+ --include-hooks A flag to include all registered hooks in your
+ Kedro Project
+
+ --params TEXT Specify extra parameters that you want to pass to
+ the context initializer. Items must be separated
+ by comma, keys - by colon, example:
+ param1:value1,param2:value2. Each parameter is
+ split by the first comma, so parameter values are
+ allowed to contain colons, parameter keys are not.
+ To pass a nested dictionary as parameter, separate
+ keys by '.', example: param_group.param1:value1.
+
+ -h, --help Show this message and exit.
+```
+
+To deploy Kedro-Viz from the command line as a Kedro plugin, use the following command from the root folder of your Kedro project:
+
+```bash
+kedro viz deploy
+```
+
+```bash
+Usage: kedro viz deploy [OPTIONS]
+
+ Deploy and host Kedro Viz on AWS S3.
+
+Options:
+ --platform TEXT Supported Cloud Platforms like ('aws', 'azure', 'gcp')
+ to host Kedro Viz [required]
+ --endpoint TEXT Static Website hosted endpoint.(eg., For AWS - http://.s3-website..amazonaws.com/)
+ [required]
+ --bucket-name TEXT Bucket name where Kedro Viz will be hosted [required]
+ --include-hooks A flag to include all registered hooks in your Kedro
+ Project
+ --include-previews A flag to include preview for all the datasets
+ -h, --help Show this message and exit.
+```
+
+To create a build directory of your local Kedro-Viz instance with static data from the command line, use the following command from the root folder of your Kedro project:
+
+```bash
+kedro viz build
+```
+
+```bash
+Usage: kedro viz build [OPTIONS]
+
+ Create build directory of local Kedro Viz instance with Kedro project data
+
+Options:
+ --include-hooks A flag to include all registered hooks in your Kedro
+ Project
+ --include-previews A flag to include preview for all the datasets
+ -h, --help Show this message and exit.
+```
+
+### Experiment Tracking usage
+
+To enable [experiment tracking](https://docs.kedro.org/en/stable/experiment_tracking/index.html) in Kedro-Viz, you need to add the Kedro-Viz `SQLiteStore` to your Kedro project.
+
+This can be done by adding the below code to `settings.py` in the `src` folder of your Kedro project.
+
+```python
+from kedro_viz.integrations.kedro.sqlite_store import SQLiteStore
+from pathlib import Path
+SESSION_STORE_CLASS = SQLiteStore
+SESSION_STORE_ARGS = {"path": str(Path(__file__).parents[2] / "data")}
+```
+
+Once the above set-up is complete, tracking datasets can be used to track relevant data for Kedro runs. More information on how to use tracking datasets can be found in the [experiment tracking documentation](https://docs.kedro.org/en/stable/experiment_tracking/index.html)
+
+**Notes:**
+
+- Experiment Tracking is only available for Kedro-Viz >= 4.0.2 and Kedro >= 0.17.5
+- Prior to Kedro 0.17.6, when using tracking datasets, you will have to explicitly mark the datasets as `versioned` for it to show up properly in Kedro-Viz experiment tracking tab. From Kedro >= 0.17.6, this is done automatically:
+
+```yaml
+train_evaluation.r2_score_linear_regression:
+ type: tracking.MetricsDataset
+ filepath: ${base_location}/09_tracking/linear_score.json
+ versioned: true
+```
+
+### Standalone React component usage
+
+To use Kedro-Viz as a standalone React component, you can follow the example below. However, please note that Kedro-Viz does not support server-side rendering (SSR). If you're using Next.js or another SSR framework, you should be aware of this limitation.
+
+```javascript
+import KedroViz from '@quantumblack/kedro-viz';
+import '@quantumblack/kedro-viz/lib/styles/styles.min.css';
+
+const MyApp = () => ;
+```
+
+To use with NextJS:
+
+```javascript
+import '@quantumblack/kedro-viz/lib/styles/styles.min.css';
+import dynamic from 'next/dynamic';
+
+const NoSSRKedro = dynamic(() => import('@quantumblack/kedro-viz'), {
+ ssr: false,
+});
+
+const MyApp = () => ;
+```
+
+The JSON can be obtained by running:
+
+```bash
+kedro viz run --save-file=filename
+```
+
+We also recommend wrapping the `Kedro-Viz` component with a parent HTML/JSX element that has a specified height (as seen in the above example) in order for Kedro-Viz to be styled properly.
+
+**_Our documentation contains [additional examples on how to visualise with Kedro-Viz.](https://docs.kedro.org/en/stable/visualisation/index.html)_**
+
+## Feature Flags
+
+Kedro-Viz uses features flags to roll out some experimental features. The following flags are currently in use:
+
+| Flag | Description |
+| ------------------ | --------------------------------------------------------------------------------------- |
+| sizewarning | From release v3.9.1. Show a warning before rendering very large graphs (default `true`) |
+| expandAllPipelines | From release v4.3.2. Expand all modular pipelines on first load (default `false`) |
+
+To enable or disable a flag, click on the settings icon in the toolbar and toggle the flag on/off.
+
+Kedro-Viz also logs a message in your browser's [developer console](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_are_browser_developer_tools#The_JavaScript_console) to show the available flags and their values as currently set on your machine.
+
+## Maintainers
+
+Kedro-Viz is maintained by the [Kedro team](https://docs.kedro.org/en/stable/contribution/technical_steering_committee.html#kedro-maintainers) and a number of [contributors from across the world](https://github.com/kedro-org/Kedro-Viz/contributors).
+
+## Contribution
+
+If you want to contribute to Kedro-Viz, please check out our [contributing guide](./CONTRIBUTING.md).
+
+## License
+
+Kedro-Viz is licensed under the [Apache 2.0](https://github.com/kedro-org/kedro-viz/blob/main/LICENSE.md) License.
+
+## Citation
+
+If you're an academic, Kedro-Viz can also help you, for example, as a tool to visualise how your publication's pipeline is structured. Find our citation reference on [Zenodo](https://doi.org/10.5281/zenodo.4277218).
diff --git a/package/pyproject.toml b/package/pyproject.toml
new file mode 100644
index 0000000000..1c4e4ca1f0
--- /dev/null
+++ b/package/pyproject.toml
@@ -0,0 +1,74 @@
+[build-system]
+requires = ["hatchling", "hatch-requirements-txt"]
+build-backend = "hatchling.build"
+
+[project]
+name = "kedro-viz"
+authors = [
+ {name = "Kedro"}
+]
+description = "Kedro-Viz helps visualise Kedro data and analytics pipelines"
+readme = {file = "README.md", content-type = "text/markdown"}
+requires-python = ">=3.9"
+keywords = [
+ "pipelines",
+ "machine learning",
+ "data pipelines",
+ "data science",
+ "data engineering",
+ "visualisation",
+]
+license = {text = "Apache Software License (Apache 2.0)"}
+dynamic = ["dependencies", "version"]
+
+[project.urls]
+Homepage = "https://kedro.org"
+Source = "https://github.com/kedro-org/kedro-viz"
+Documentation = "https://docs.kedro.org/projects/kedro-viz"
+Tracker = "https://github.com/kedro-org/kedro-viz/issues"
+
+[project.optional-dependencies]
+docs = [
+ "kedro-sphinx-theme==2024.4.0",
+]
+aws = ["s3fs>=2021.4"]
+azure = ["adlfs>=2021.4"]
+gcp = ["gcsfs>=2021.4"]
+
+[project.entry-points."kedro.global_commands"]
+kedro-viz = "kedro_viz.launchers.cli:viz_cli"
+
+[project.entry-points."kedro.line_magic"]
+line_magic = "kedro_viz.launchers.jupyter:run_viz"
+
+[project.entry-points."kedro.hooks"]
+kedro-dataset-stats = "kedro_viz.integrations.kedro.hooks:dataset_stats_hook"
+
+[tool.hatch.version]
+path = "kedro_viz/__init__.py"
+
+[tool.hatch.build.targets.sdist]
+include = [
+ "requirements.txt",
+ "/kedro_viz",
+]
+exclude = [
+ "/kedro_viz/docs",
+]
+
+[tool.hatch.metadata.hooks.requirements_txt]
+files = ["requirements.txt"]
+
+[tool.pytest.ini_options]
+addopts ="""
+--verbose -ra
+--cov-report xml:coverage.xml
+--cov-report term-missing
+--cov kedro_viz
+--ignore package/tests
+--no-cov-on-fail
+-ra
+--asyncio-mode auto"""
+testpaths = [
+ "tests"
+]
diff --git a/package/setup.cfg b/package/setup.cfg
deleted file mode 100644
index 41b22260f8..0000000000
--- a/package/setup.cfg
+++ /dev/null
@@ -1,12 +0,0 @@
-[aliases]
-test=pytest
-
-[tool:pytest]
-addopts=--verbose -ra
- --cov-report xml:coverage.xml
- --cov-report term-missing
- --cov kedro_viz
- --ignore package/tests
- --no-cov-on-fail
- -ra
- --asyncio-mode auto
diff --git a/package/setup.py b/package/setup.py
deleted file mode 100644
index e04cda700f..0000000000
--- a/package/setup.py
+++ /dev/null
@@ -1,61 +0,0 @@
-# type: ignore
-import json
-import os
-from os import path
-
-from setuptools import find_packages, setup
-
-name = "kedro-viz"
-here = path.abspath(path.dirname(__file__))
-
-
-jsbuild = [
- os.path.join(dirpath, f)
- for dirpath, dirnames, files in os.walk("kedro_viz/html/")
- for f in files
-]
-
-files = map(lambda x: x.replace("kedro_viz/", "", 1), jsbuild)
-
-with open(path.join(here, path.pardir, "package.json")) as data:
- obj = json.load(data)
- version = obj["version"]
-
-with open("requirements.txt", "r", encoding="utf-8") as f:
- requires = [x.strip() for x in f if x.strip()]
-
-with open(path.join(here, "../README.md"), encoding="utf-8") as f:
- readme = f.read()
-
-
-setup(
- name=name,
- version=version,
- description="Kedro-Viz helps visualise Kedro data and analytics pipelines",
- long_description=readme,
- long_description_content_type="text/markdown",
- license="Apache Software License (Apache 2.0)",
- url="https://github.com/kedro-org/kedro-viz",
- python_requires=">=3.9",
- install_requires=requires,
- keywords="pipelines, machine learning, data pipelines, data science, data engineering, visualisation",
- author="Kedro",
- packages=find_packages(exclude=["tests*", "features*"]),
- package_data={"kedro_viz": list(files)},
- zip_safe=False,
- entry_points={
- "kedro.global_commands": ["kedro-viz = kedro_viz.launchers.cli:viz_cli"],
- "kedro.line_magic": ["line_magic = kedro_viz.launchers.jupyter:run_viz"],
- "kedro.hooks": [
- "kedro-dataset-stats = kedro_viz.integrations.kedro.hooks:dataset_stats_hook"
- ],
- },
- extras_require={
- "docs": [
- "kedro-sphinx-theme==2024.4.0",
- ],
- "aws": ["s3fs>=2021.4"],
- "azure": ["adlfs>=2021.4"],
- "gcp": ["gcsfs>=2021.4"],
- },
-)