diff --git a/package_desc.md b/package_desc.md
new file mode 100644
index 0000000000..bdde0533c8
--- /dev/null
+++ b/package_desc.md
@@ -0,0 +1,61 @@
+# Taipy
+
+## License
+
+Copyright 2021-2024 Avaiga Private Limited
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+except in compliance with the License. You may obtain a copy of the License at
+[http://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+Unless required by applicable law or agreed to in writing, software distributed under the
+License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+either express or implied. See the License for the specific language governing permissions
+and limitations under the License.
+
+## ⭐️ What is Taipy
+
+Taipy is an open-source Python library for easy, end-to-end application development for data
+scientists and machine learning engineers, featuring what-if analyses, smart pipeline execution,
+built-in scheduling, and deployment tools.
+
+- Enables building production-ready web applications.
+- No need to learn new languages or full-stack frameworks.
+- Concentrate on Data and AI algorithms without development and deployment complexities.
+
+- Website: https://www.taipy.io
+- Documentation: https://docs.taipy.io/en/latest/
+- Demos & Examples: https://docs.taipy.io/en/latest/gallery/
+- Source code: https://github.com/Avaiga/taipy/
+- Contributing: https://docs.taipy.io/en/latest/contributing/contributing/
+- Bug reports: https://github.com/Avaiga/taipy/issues
+- Discord support: https://discord.com/invite/SJyz2VJGxV
+
+## ✨ Features
+
+- **Python-Based UI Framework:** Taipy is designed for Python users, particularly those
+ in AI and data science. It allows them to create full-stack applications without
+ learning additional skills like HTML, CSS, or JavaScript.
+
+- **Pre-Built Components for Data Pipelines:** Taipy includes pre-built components that
+ allow users to interact with data pipelines, including visualization and management
+ tools.
+
+- **Scenario and Data Management Features:** Taipy offers features for managing different
+ business scenarios and data, which can be useful for applications like demand forecasting
+ or production planning.
+
+- **Version Management and Pipeline Orchestration:** It includes tools for managing
+ application versions, pipeline versions, and data versions, which are beneficial
+ for multi-user environments.
+
+## Installation
+
+To install Taipy stable release run:
+```bash
+pip install taipy
+```
+
+To install Taipy on a Conda Environment or from source code, please refer to the
+[Installation Guide](https://docs.taipy.io/en/latest/installation/).
+To get started with Taipy, please refer to the [Getting Started Guide](https://docs.taipy.io/en/latest/getting_started/).
diff --git a/setup.py b/setup.py
index e2cf3cf83b..da7c813193 100644
--- a/setup.py
+++ b/setup.py
@@ -9,7 +9,7 @@
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
-"""The setup script."""
+"""The setup script for taipy package"""
import os
import json
@@ -22,7 +22,7 @@
root_folder = Path(__file__).parent
-readme = (root_folder / "README.md").read_text("UTF-8")
+package_desc = Path("package_desc.md").read_text("UTF-8")
# get current version
with open(os.path.join("taipy", "version.json")) as version_file:
@@ -73,6 +73,7 @@ def run(self):
author_email="dev@taipy.io",
python_requires=">=3.8",
classifiers=[
+ "Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Natural Language :: English",
@@ -82,6 +83,12 @@ def run(self):
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
+ "Topic :: Software Development",
+ "Topic :: Scientific/Engineering",
+ "Operating System :: Microsoft :: Windows",
+ "Operating System :: POSIX",
+ "Operating System :: Unix",
+ "Operating System :: MacOS",
],
description="A 360° open-source platform from Python pilots to production-ready web apps.",
install_requires=get_requirements(),
@@ -91,16 +98,24 @@ def run(self):
]
},
license="Apache License 2.0",
- long_description=readme,
+ long_description=package_desc,
long_description_content_type="text/markdown",
keywords="taipy",
name="taipy",
packages=find_packages(include=["taipy", "taipy.*"]),
include_package_data=True,
test_suite="tests",
- url="https://github.com/avaiga/taipy",
version=version_string,
zip_safe=False,
extras_require=extras_require,
cmdclass={"build_py": NPMInstall},
+ project_urls={
+ "Homepage": "https://www.taipy.io",
+ "Documentation": "https://docs.taipy.io",
+ "Source": "https://github.com/Avaiga/taipy",
+ "Download": "https://pypi.org/project/taipy/#files",
+ "Tracker": "https://github.com/Avaiga/taipy/issues",
+ "Security": "https://github.com/Avaiga/taipy?tab=security-ov-file#readme",
+ f"Release notes": "https://docs.taipy.io/en/release-{version_string}/relnotes/",
+ },
)
diff --git a/taipy/config/CODE_OF_CONDUCT.md b/taipy/config/CODE_OF_CONDUCT.md
deleted file mode 100644
index c231f6cf10..0000000000
--- a/taipy/config/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1,128 +0,0 @@
-# Contributor Covenant Code of Conduct
-
-## Our Pledge
-
-We as members, contributors, and leaders pledge to make participation in our
-community a harassment-free experience for everyone, regardless of age, body
-size, visible or invisible disability, ethnicity, sex characteristics, gender
-identity and expression, level of experience, education, socioeconomic status,
-nationality, personal appearance, race, religion, or sexual identity
-and orientation.
-
-We pledge to act and interact in ways that contribute to an open, welcoming,
-diverse, inclusive, and healthy community.
-
-## Our Standards
-
-Examples of behavior that contributes to a positive environment for our
-community include:
-
-* Demonstrating empathy and kindness toward other people.
-* Being respectful of differing opinions, viewpoints, and experiences.
-* Giving and gracefully accepting constructive feedback.
-* Accepting responsibility and apologizing to those affected by our mistakes,
- and learning from the experience.
-* Focusing on what is best not just for us as individuals, but for the
- overall community.
-
-Examples of unacceptable behavior include:
-
-* The use of sexualized language or imagery, and sexual attention or
- advances of any kind.
-* Trolling, insulting or derogatory comments, and personal or political attacks
-* Public or private harassment.
-* Publishing others' private information, such as a physical or email
- address, without their explicit permission.
-* Other conduct which could reasonably be considered inappropriate in a
- professional setting.
-
-## Enforcement Responsibilities
-
-Community leaders are responsible for clarifying and enforcing our standards of
-acceptable behavior and will take appropriate and fair corrective action in
-response to any behavior that they deem inappropriate, threatening, offensive,
-or harmful.
-
-Community leaders have the right and responsibility to remove, edit, or reject
-comments, commits, code, wiki edits, issues, and other contributions that are
-not aligned to this Code of Conduct, and will communicate reasons for moderation
-decisions when appropriate.
-
-## Scope
-
-This Code of Conduct applies within all community spaces, and also applies when
-an individual is officially representing the community in public spaces.
-Examples of representing our community include using an official e-mail address,
-posting via an official social media account, or acting as an appointed
-representative at an online or offline event.
-
-## Enforcement
-
-Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported to the community leaders responsible for enforcement at
-rnd@avaiga.com.
-All complaints will be reviewed and investigated promptly and fairly.
-
-All community leaders are obligated to respect the privacy and security of the
-reporter of any incident.
-
-## Enforcement Guidelines
-
-Community leaders will follow these Community Impact Guidelines in determining
-the consequences for any action they deem in violation of this Code of Conduct:
-
-### 1. Correction
-
-**Community Impact**: Use of inappropriate language or other behavior deemed
-unprofessional or unwelcome in the community.
-
-**Consequence**: A private, written warning from community leaders, providing
-clarity around the nature of the violation and an explanation of why the
-behavior was inappropriate. A public apology may be requested.
-
-### 2. Warning
-
-**Community Impact**: A violation through a single incident or series
-of actions.
-
-**Consequence**: A warning with consequences for continued behavior. No
-interaction with the people involved, including unsolicited interaction with
-those enforcing the Code of Conduct, for a specified period of time. This
-includes avoiding interactions in community spaces as well as external channels
-like social media. Violating these terms may lead to a temporary or
-permanent ban.
-
-### 3. Temporary Ban
-
-**Community Impact**: A serious violation of community standards, including
-sustained inappropriate behavior.
-
-**Consequence**: A temporary ban from any sort of interaction or public
-communication with the community for a specified period of time. No public or
-private interaction with the people involved, including unsolicited interaction
-with those enforcing the Code of Conduct, is allowed during this period.
-Violating these terms may lead to a permanent ban.
-
-### 4. Permanent Ban
-
-**Community Impact**: Demonstrating a pattern of violation of community
-standards, including sustained inappropriate behavior, harassment of an
-individual, or aggression toward or disparagement of classes of individuals.
-
-**Consequence**: A permanent ban from any sort of public interaction within
-the community.
-
-## Attribution
-
-This Code of Conduct is adapted from the [Contributor Covenant][homepage],
-version 2.0, available at
-https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
-
-Community Impact Guidelines were inspired by [Mozilla's code of conduct
-enforcement ladder](https://github.com/mozilla/diversity).
-
-[homepage]: https://www.contributor-covenant.org
-
-For answers to common questions about this code of conduct, see the FAQ at
-https://www.contributor-covenant.org/faq. Translations are available at
-https://www.contributor-covenant.org/translations.
diff --git a/taipy/config/CONTRIBUTING.md b/taipy/config/CONTRIBUTING.md
deleted file mode 100644
index c0363fd6c5..0000000000
--- a/taipy/config/CONTRIBUTING.md
+++ /dev/null
@@ -1,135 +0,0 @@
-# Contributions
-
-Thanks for your interest in helping improve Taipy! Contributions are welcome, and they are greatly appreciated!
-Every little help and credit will always be given.
-
-There are multiple ways to contribute to Taipy: code, but also reporting bugs, creating feature requests, helping
-other users in our forums, [stack**overflow**](https://stackoverflow.com/), etc.
-
-Today the only way to communicate with the Taipy team is by GitHub issues.
-
-## Never contributed on an open source project before ?
-
-Have a look on this [GitHub documentation](https://docs.github.com/en/get-started/quickstart/contributing-to-projects).
-
-## Report bugs
-
-Reporting bugs is through [GitHub issues](https://github.com/Avaiga/taipy/issues).
-
-Please report relevant information and preferably code that exhibits the problem. We provide templates to help you
-describe the issue.
-
-The Taipy team will analyse and try to reproduce the bug to provide feedback. If confirmed, we will add a priority
-to the issue and add it in our backlog. Feel free to propose a pull request to fix it.
-
-## Issue reporting, feedback, proposal, design or any other comment
-
-Any feedback or proposal is greatly appreciated! Do not hesitate to create an issue with the appropriate template on
-[GitHub](https://github.com/Avaiga/taipy/issues).
-
-The Taipy team will analyse your issue and return to you as soon as possible.
-
-## Improve Documentation
-
-Do not hesitate to create an issue or pull request directly on the
-[taipy-doc repository](https://github.com/Avaiga/taipy-doc).
-
-## Implement Features
-
-The Taipy team manages its backlog in private. Each issue that will be done during our current sprint is
-attached to the `current sprint`. Please, do not work on it, the Taipy team is on it.
-
-## Code organisation
-
-Taipy is organised in five main repositories:
-
-- [taipy-config](https://github.com/Avaiga/taipy-config).
-- [taipy-core](https://github.com/Avaiga/taipy-core).
-- [taipy-gui](https://github.com/Avaiga/taipy-gui).
-- [taipy-rest](https://github.com/Avaiga/taipy-rest).
-- [taipy](https://github.com/Avaiga/taipy) brings previous packages in a single one.
-
-## Coding style and best practices
-
-### Python
-
-Taipy's repositories follow the [PEP 8](https://www.python.org/dev/peps/pep-0008/) and
-[PEP 484](https://www.python.org/dev/peps/pep-0484/) coding convention.
-
-## TypeScript
-
-Taipy's repositories use the [ESLint](https://eslint.org/) and
-[TypeScript ESLint](https://github.com/typescript-eslint/typescript-eslint) plugin to ensure a common set of rules.
-
-### Git branches
-
-All new development happens in the `develop` branch. All pull requests should target that branch.
-We are following a strict branch naming convention based on the pattern: `/#[IssueSummary]`.
-
-Where:
-
-- `` would be one of:
- - feature: new feature implementation, or improvement of a feature.
- - bug: bug fix.
- - review: change provoked by review comment not immediately taken care of.
- - refactor: refactor of a piece of code.
- - doc: doc changes (complement or typo fixes…).
- - build: in relation with the build process.
-- `` is the processed issue identifier. The advantage of explicitly indicating the issue number is that in
- GitHub, a pull request page shows a direct link to the issue description.
-- `[IssueSummary]` is a short summary of the issue topic, not including spaces, using Camel case or lower-case,
- dash-separated words. This summary, with its dash (‘-’) symbol prefix, is optional.
-
-
-## Contribution workflow
-
-Find an issue without the label `current sprint` and add a comment on it to inform the community that you are
-working on it.
-
-1. Make your [own fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) of the repository
- target by the issue. Clone it on our local machine, then go inside the directory.
-
-2. We are working with [Pipenv](https://github.com/pypa/pipenv) for our virtualenv.
- Create a local env and install development package by running `pipenv install --dev`, then run tests with `pipenv
- run pytest` to verify your setup.
-
-3. For convention help, we provide a [pre-commit](https://pre-commit.com/hooks.html) file.
- This tool will run before each commit and will automatically reformat code or raise warnings and errors based on the
- code format or Python typing.
- You can install and setup it up by doing:
- ```bash
- pipenv install pre-commit
- pipenv run python -m pre-commit install
- ```
-
-4. Make the changes.
- You may want to also add your GitHub login as a new line of the `contributors.txt` file located at the root
- of this repository. We are using it to list our contributors in the Taipy documentation
- (see the "Contributing > Contributors" section) and thank them.
-
-5. Create a [pull request from your fork](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork).
- Keep your pull request as __draft__ until your work is finished.
- Do not hesitate to add a comment for help or questions.
- Before you submit a pull request for review from your forked repo, check that it meets these guidelines:
- - Include tests.
- - Code is [rebase](http://stackoverflow.com/a/7244456/1110993).
- - License is present.
- - pre-commit works - without mypy error.
- - GitHub's actions are passing.
-
-6. The taipy team will have a look at your Pull Request and will give feedback. If every requirement is valid, your
- work will be added in the next release, congratulation!
-
-
-## Dependency management
-
-Taipy comes with multiple optional packages. You can find the list directly in the product or Taipy's packages.
-The back-end Pipfile does not install by default optional packages due to `pyodbc` requiring a driver's manual
-installation. This is not the behaviour for the front-end that installs all optional packages through its Pipfile.
-
-If you are a contributor on Taipy, be careful with dependencies, do not forget to install or uninstall depending on
-your issue.
-
-If you need to add a new dependency to Taipy, do not forget to add it in the `Pipfile` and the `setup.py`.
-Keep in mind that dependency is a vector of attack. The Taipy team limits the usage of external dependencies at the
-minimum.
diff --git a/taipy/config/INSTALLATION.md b/taipy/config/INSTALLATION.md
index 7051f7680c..86fd34c16a 100644
--- a/taipy/config/INSTALLATION.md
+++ b/taipy/config/INSTALLATION.md
@@ -12,10 +12,10 @@ You can install the development version of *taipy-config* with `pip` and `git` d
pip install git+https://git@github.com/Avaiga/taipy
```
-This command installs the development version of _taipy_ package in the Python environment with all
-its dependencies, including the _taipy-config_ package.
+This command installs the development version of *taipy* package in the Python environment with all
+its dependencies, including the *taipy-config* package.
-If you need the source code for _taipy-config_ on your system so you can see how things are done or
+If you need the source code for *taipy-config* on your system so you can see how things are done or
maybe participate in the improvement of the packages, you can clone the GitHub repository:
```bash
diff --git a/taipy/config/README.md b/taipy/config/README.md
index 714dec4378..5fa0f5a8aa 100644
--- a/taipy/config/README.md
+++ b/taipy/config/README.md
@@ -1,4 +1,4 @@
-# Taipy config
+# Taipy Config
## License
Copyright 2021-2024 Avaiga Private Limited
@@ -14,33 +14,33 @@ specific language governing permissions and limitations under the License.
## Usage
- [License](#license)
- [Usage](#usage)
-- [Taipy config](#what-is-taipy-config)
+- [Taipy Config](#what-is-taipy-config)
- [Installation](#installation)
- [Contributing](#contributing)
- [Code of conduct](#code-of-conduct)
- [Directory Structure](#directory-structure)
-## What is Taipy config
+## What is Taipy Config
Taipy is a Python library for creating Business Applications. More information on our
-[website](https://www.taipy.io). Taipy is split into multiple repositories including _taipy-config_ to let users
+[website](https://www.taipy.io). Taipy is split into multiple repositories including *taipy-config* to let users
install the minimum they need.
-Taipy config is a package designed to help users configure their Taipy application.
+Taipy Config is a package designed to help users configure their Taipy application.
More in-depth documentation of taipy can be found [here](https://docs.taipy.io).
## Installation
-Want to install _Taipy config_? Check out our [`INSTALLATION.md`](INSTALLATION.md) file.
+Want to install *Taipy Config*? Check out our [`INSTALLATION.md`](INSTALLATION.md) file.
## Contributing
-Want to help build _Taipy config_? Check out our [`CONTRIBUTING.md`](CONTRIBUTING.md) file.
+Want to help build *Taipy Config*? Check out our [`CONTRIBUTING.md`](../../CONTRIBUTING.md) file.
## Code of conduct
-Want to be part of the _Taipy config_ community? Check out our [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) file.
+Want to be part of the *Taipy Config* community? Check out our [`CODE_OF_CONDUCT.md`](../../CODE_OF_CONDUCT.md) file.
## Directory Structure
@@ -53,12 +53,10 @@ Want to be part of the _Taipy config_ community? Check out our [`CODE_OF_CONDUCT
- `exceptions/`: *taipy-config* exceptions.
- `global_app/`: `GlobalAppConfig` implementation.
- `stubs/`: Helper functions to create the `config.pyi` file.
- - `CODE_OF_CONDUCT.md`: Code of conduct for members and contributors of *taipy-config*.
- - `CONTRIBUTING.md`: Instructions to contribute to _taipy-config_.
- - `INSTALLATION.md`: Instructions to install _taipy-config_.
+ - `INSTALLATION.md`: Instructions to install *taipy-config*.
- `LICENSE`: The Apache 2.0 License.
- `README.md`: Current file.
- - `setup.py`: The setup script managing building, distributing, and installing _taipy-config_.
+ - `setup.py`: The setup script managing building, distributing, and installing *taipy-config*.
- `logger/`: Taipy logger implementation.
- `tests/`:
- - `config/`: Tests for the _taipy-config_ package.
+ - `config/`: Tests for the *taipy-config* package.
diff --git a/taipy/config/package_desc.md b/taipy/config/package_desc.md
new file mode 100644
index 0000000000..e69d74d504
--- /dev/null
+++ b/taipy/config/package_desc.md
@@ -0,0 +1,47 @@
+# Taipy Config
+
+## License
+
+Copyright 2021-2024 Avaiga Private Limited
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+except in compliance with the License. You may obtain a copy of the License at
+[http://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+Unless required by applicable law or agreed to in writing, software distributed under the
+License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+either express or implied. See the License for the specific language governing permissions
+and limitations under the License.
+
+## What is Taipy Config
+
+Taipy is a Python library for creating Business Applications. More information on our
+[website](https://www.taipy.io). Taipy is split into multiple repositories including *taipy-config*
+to let users install the minimum they need.
+
+Taipy Config is a package designed to help users configure their Taipy application.
+
+## Installation
+
+The latest stable version of *taipy-config* is available through *pip*:
+```bash
+pip install taipy-config
+```
+
+You can install the development version of *taipy-config* with *pip* and *git* via the taipy repository:
+```bash
+pip install git+https://git@github.com/Avaiga/taipy
+```
+
+This command installs the development version of *taipy* package in the Python environment with all
+its dependencies, including the *taipy-config* package.
+
+If you need the source code for *taipy-config* on your system so you can see how things are done or
+maybe participate in the improvement of the packages, you can clone the GitHub repository:
+
+```bash
+git clone https://github.com/Avaiga/taipy.git
+```
+
+This creates the 'taipy' directory holding all the package's source code, and the 'taipy-config'
+source code is in the 'taipy/config' directory.
diff --git a/taipy/config/setup.py b/taipy/config/setup.py
index 27aaaa7ede..82ce4c540f 100644
--- a/taipy/config/setup.py
+++ b/taipy/config/setup.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
# Copyright 2021-2024 Avaiga Private Limited
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
@@ -11,14 +9,15 @@
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
-"""The setup script."""
+"""The setup script for taipy-config package"""
+
import json
import os
+from pathlib import Path
from setuptools import find_namespace_packages, find_packages, setup
-with open("README.md") as readme_file:
- readme = readme_file.read()
+package_desc = Path("package_desc.md").read_text("UTF-8")
version_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "version.json")
@@ -37,6 +36,7 @@
author_email="dev@taipy.io",
python_requires=">=3.8",
classifiers=[
+ "Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Natural Language :: English",
@@ -46,10 +46,16 @@
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
+ "Topic :: Software Development",
+ "Topic :: Scientific/Engineering",
+ "Operating System :: Microsoft :: Windows",
+ "Operating System :: POSIX",
+ "Operating System :: Unix",
+ "Operating System :: MacOS",
],
description="A Taipy package dedicated to easily configure a Taipy application.",
install_requires=requirements,
- long_description=readme,
+ long_description=package_desc,
long_description_content_type="text/markdown",
license="Apache License 2.0",
keywords="taipy-config",
@@ -60,7 +66,15 @@
data_files=[('version', ['version.json'])],
test_suite="tests",
tests_require=test_requirements,
- url="https://github.com/avaiga/taipy-config",
version=version_string,
zip_safe=False,
+ project_urls={
+ "Homepage": "https://www.taipy.io",
+ "Documentation": "https://docs.taipy.io",
+ "Source": "https://github.com/Avaiga/taipy",
+ "Download": "https://pypi.org/project/taipy/#files",
+ "Tracker": "https://github.com/Avaiga/taipy/issues",
+ "Security": "https://github.com/Avaiga/taipy?tab=security-ov-file#readme",
+ f"Release notes": "https://docs.taipy.io/en/release-{version_string}/relnotes/",
+ },
)
diff --git a/taipy/core/CODE_OF_CONDUCT.md b/taipy/core/CODE_OF_CONDUCT.md
deleted file mode 100644
index c231f6cf10..0000000000
--- a/taipy/core/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1,128 +0,0 @@
-# Contributor Covenant Code of Conduct
-
-## Our Pledge
-
-We as members, contributors, and leaders pledge to make participation in our
-community a harassment-free experience for everyone, regardless of age, body
-size, visible or invisible disability, ethnicity, sex characteristics, gender
-identity and expression, level of experience, education, socioeconomic status,
-nationality, personal appearance, race, religion, or sexual identity
-and orientation.
-
-We pledge to act and interact in ways that contribute to an open, welcoming,
-diverse, inclusive, and healthy community.
-
-## Our Standards
-
-Examples of behavior that contributes to a positive environment for our
-community include:
-
-* Demonstrating empathy and kindness toward other people.
-* Being respectful of differing opinions, viewpoints, and experiences.
-* Giving and gracefully accepting constructive feedback.
-* Accepting responsibility and apologizing to those affected by our mistakes,
- and learning from the experience.
-* Focusing on what is best not just for us as individuals, but for the
- overall community.
-
-Examples of unacceptable behavior include:
-
-* The use of sexualized language or imagery, and sexual attention or
- advances of any kind.
-* Trolling, insulting or derogatory comments, and personal or political attacks
-* Public or private harassment.
-* Publishing others' private information, such as a physical or email
- address, without their explicit permission.
-* Other conduct which could reasonably be considered inappropriate in a
- professional setting.
-
-## Enforcement Responsibilities
-
-Community leaders are responsible for clarifying and enforcing our standards of
-acceptable behavior and will take appropriate and fair corrective action in
-response to any behavior that they deem inappropriate, threatening, offensive,
-or harmful.
-
-Community leaders have the right and responsibility to remove, edit, or reject
-comments, commits, code, wiki edits, issues, and other contributions that are
-not aligned to this Code of Conduct, and will communicate reasons for moderation
-decisions when appropriate.
-
-## Scope
-
-This Code of Conduct applies within all community spaces, and also applies when
-an individual is officially representing the community in public spaces.
-Examples of representing our community include using an official e-mail address,
-posting via an official social media account, or acting as an appointed
-representative at an online or offline event.
-
-## Enforcement
-
-Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported to the community leaders responsible for enforcement at
-rnd@avaiga.com.
-All complaints will be reviewed and investigated promptly and fairly.
-
-All community leaders are obligated to respect the privacy and security of the
-reporter of any incident.
-
-## Enforcement Guidelines
-
-Community leaders will follow these Community Impact Guidelines in determining
-the consequences for any action they deem in violation of this Code of Conduct:
-
-### 1. Correction
-
-**Community Impact**: Use of inappropriate language or other behavior deemed
-unprofessional or unwelcome in the community.
-
-**Consequence**: A private, written warning from community leaders, providing
-clarity around the nature of the violation and an explanation of why the
-behavior was inappropriate. A public apology may be requested.
-
-### 2. Warning
-
-**Community Impact**: A violation through a single incident or series
-of actions.
-
-**Consequence**: A warning with consequences for continued behavior. No
-interaction with the people involved, including unsolicited interaction with
-those enforcing the Code of Conduct, for a specified period of time. This
-includes avoiding interactions in community spaces as well as external channels
-like social media. Violating these terms may lead to a temporary or
-permanent ban.
-
-### 3. Temporary Ban
-
-**Community Impact**: A serious violation of community standards, including
-sustained inappropriate behavior.
-
-**Consequence**: A temporary ban from any sort of interaction or public
-communication with the community for a specified period of time. No public or
-private interaction with the people involved, including unsolicited interaction
-with those enforcing the Code of Conduct, is allowed during this period.
-Violating these terms may lead to a permanent ban.
-
-### 4. Permanent Ban
-
-**Community Impact**: Demonstrating a pattern of violation of community
-standards, including sustained inappropriate behavior, harassment of an
-individual, or aggression toward or disparagement of classes of individuals.
-
-**Consequence**: A permanent ban from any sort of public interaction within
-the community.
-
-## Attribution
-
-This Code of Conduct is adapted from the [Contributor Covenant][homepage],
-version 2.0, available at
-https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
-
-Community Impact Guidelines were inspired by [Mozilla's code of conduct
-enforcement ladder](https://github.com/mozilla/diversity).
-
-[homepage]: https://www.contributor-covenant.org
-
-For answers to common questions about this code of conduct, see the FAQ at
-https://www.contributor-covenant.org/faq. Translations are available at
-https://www.contributor-covenant.org/translations.
diff --git a/taipy/core/CONTRIBUTING.md b/taipy/core/CONTRIBUTING.md
deleted file mode 100644
index f4b1a68c87..0000000000
--- a/taipy/core/CONTRIBUTING.md
+++ /dev/null
@@ -1,135 +0,0 @@
-# Contributions
-
-Thanks for your interest in helping improve Taipy! Contributions are welcome, and they are greatly appreciated!
-Every little help and credit will always be given.
-
-There are multiple ways to contribute to Taipy: code, but also reporting bugs, creating feature requests, helping
-other users in our forums, [stack**overflow**](https://stackoverflow.com/), etc.
-
-Today the only way to communicate with the Taipy team is by GitHub issues.
-
-## Never contributed on an open source project before ?
-
-Have a look on this [GitHub documentation](https://docs.github.com/en/get-started/quickstart/contributing-to-projects).
-
-## Report bugs
-
-Reporting bugs is through [GitHub issues](https://github.com/Avaiga/taipy/issues).
-
-Please report relevant information and preferably code that exhibits the problem. We provide templates to help you
-describe the issue.
-
-The Taipy team will analyse and try to reproduce the bug to provide feedback. If confirmed, we will add a priority
-to the issue and add it in our backlog. Feel free to propose a pull request to fix it.
-
-## Issue reporting, feedback, proposal, design or any other comment
-
-Any feedback or proposal is greatly appreciated! Do not hesitate to create an issue with the appropriate template on
-[GitHub](https://github.com/Avaiga/taipy/issues).
-
-The Taipy team will analyse your issue and return to you as soon as possible.
-
-## Improve Documentation
-
-Do not hesitate to create an issue or pull request directly on the
-[taipy-doc repository](https://github.com/Avaiga/taipy-doc).
-
-## Implement Features
-
-The Taipy team manages its backlog in private. Each issue that will be done during our current sprint is
-attached to the `current sprint`. Please, do not work on it, the Taipy team is on it.
-
-## Code organisation
-
-Taipy is organised in five main repositories:
-
-- [taipy-config](https://github.com/Avaiga/taipy-config).
-- [taipy-core](https://github.com/Avaiga/taipy-core).
-- [taipy-gui](https://github.com/Avaiga/taipy-gui).
-- [taipy-rest](https://github.com/Avaiga/taipy-rest).
-- [taipy](https://github.com/Avaiga/taipy) brings previous packages in a single one.
-
-## Coding style and best practices
-
-### Python
-
-Taipy's repositories follow the [PEP 8](https://www.python.org/dev/peps/pep-0008/) and
-[PEP 484](https://www.python.org/dev/peps/pep-0484/) coding convention.
-
-## TypeScript
-
-Taipy's repositories use the [ESLint](https://eslint.org/) and
-[TypeScript ESLint](https://github.com/typescript-eslint/typescript-eslint) plugin to ensure a common set of rules.
-
-### Git branches
-
-All new development happens in the `develop` branch. All pull requests should target that branch.
-We are following a strict branch naming convention based on the pattern: `/#[IssueSummary]`.
-
-Where:
-
-- `` would be one of:
- - feature: new feature implementation, or improvement of a feature.
- - bug: bug fix.
- - review: change provoked by review comment not immediately taken care of.
- - refactor: refactor of a piece of code.
- - doc: doc changes (complement or typo fixes…).
- - build: in relation with the build process.
-- `` is the processed issue identifier. The advantage of explicitly indicating the issue number is that in
- GitHub, a pull request page shows a direct link to the issue description.
-- `[IssueSummary]` is a short summary of the issue topic, not including spaces, using Camel case or lower-case,
- dash-separated words. This summary, with its dash (‘-’) symbol prefix, is optional.
-
-
-## Contribution workflow
-
-Find an issue without the label `current sprint` and add a comment on it to inform the community that you are
-working on it.
-
-1. Make your [own fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) of the repository
- target by the issue. Clone it on our local machine, then go inside the directory.
-
-2. We are working with [Pipenv](https://github.com/pypa/pipenv) for our virtualenv.
- Create a local env and install development package by running `pipenv install --dev`, then run tests with `pipenv
- run pytest` to verify your setup.
-
-3. For convention help, we provide a [pre-commit](https://pre-commit.com/hooks.html) file.
- This tool will run before each commit and will automatically reformat code or raise warnings and errors based on the
- code format or Python typing.
- You can install and setup it up by doing:
- ```bash
- pipenv install pre-commit
- pipenv run python -m pre-commit install
- ```
-
-4. Make the changes.
- You may want to also add your GitHub login as a new line of the `contributors.txt` file located at the root
- of this repository. We are using it to list our contributors in the Taipy documentation
- (see the "Contributing > Contributors" section) and thank them.
-
-5. Create a [pull request from your fork](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork).
- Keep your pull request as __draft__ until your work is finished.
- Do not hesitate to add a comment for help or questions.
- Before you submit a pull request for review from your forked repo, check that it meets these guidelines:
- - Include tests.
- - Code is [rebase](http://stackoverflow.com/a/7244456/1110993).
- - License is present.
- - pre-commit works - without mypy error.
- - GitHub's actions are passing.
-
-6. The taipy team will have a look at your Pull Request and will give feedback. If every requirement is valid, your
- work will be added in the next release, congratulation!
-
-
-## Dependency management
-
-Taipy comes with multiple optional packages. You can find the list directly in the product or Taipy's packages.
-The back-end Pipfile does not install by default optional packages due to `pyodbc` requiring a driver's manual
-installation. This is not the behaviour for the front-end that installs all optional packages through its Pipfile.
-
-If you are a contributor on Taipy, be careful with dependencies, do not forget to install or uninstall depending on
-your issue.
-
-If you need to add a new dependency to Taipy, do not forget to add it in the `Pipfile` and the `setup.py`.
-Keep in mind that dependency is a vector of attack. The Taipy team limits the usage of external dependencies at the
-minimum.
diff --git a/taipy/core/INSTALLATION.md b/taipy/core/INSTALLATION.md
index f588827abf..9d72cd2ab2 100644
--- a/taipy/core/INSTALLATION.md
+++ b/taipy/core/INSTALLATION.md
@@ -1,21 +1,21 @@
# Installation
-The latest stable version of _taipy-core_ is available through _pip_:
+The latest stable version of *taipy-core* is available through *pip*:
```bash
pip install taipy-core
```
## Development version
-You can install the development version of _taipy-core_ with _pip_ and _git_ via the taipy repository:
+You can install the development version of *taipy-core* with *pip* and *git* via the taipy repository:
```bash
pip install git+https://git@github.com/Avaiga/taipy
```
-This command installs the development version of _taipy_ package in the Python environment with all
-its dependencies, including the _taipy-core_ package.
+This command installs the development version of *taipy* package in the Python environment with all
+its dependencies, including the *taipy-core* package.
-If you need the source code for _taipy-core_ on your system so you can see how things are done or
+If you need the source code for *taipy-core* on your system so you can see how things are done or
maybe participate in the improvement of the packages, you can clone the GitHub repository:
```bash
@@ -36,7 +36,7 @@ pip install pipenv
pipenv install --dev
```
-Then you can run _taipy-core_ tests with the following command:
+Then you can run *taipy-core* tests with the following command:
```bash
pipenv run pytest tests/core
diff --git a/taipy/core/README.md b/taipy/core/README.md
index 66f64c0147..89149cf1d6 100644
--- a/taipy/core/README.md
+++ b/taipy/core/README.md
@@ -28,7 +28,7 @@ and limitations under the License.
Taipy is a Python library for creating Business Applications. More information on our
[website](https://www.taipy.io). Taipy is split into multiple repositories including
-_taipy-core_ to let users install the minimum they need.
+*taipy-core* to let users install the minimum they need.
Taipy Core mostly includes business-oriented
features. It helps users create and manage business applications and improve analyses
@@ -38,16 +38,16 @@ A more in depth documentation of taipy can be found [here](https://docs.taipy.io
## Installation
-Want to install _Taipy Core_? Check out our [`INSTALLATION.md`](INSTALLATION.md) file.
+Want to install *Taipy Core*? Check out our [`INSTALLATION.md`](INSTALLATION.md) file.
## Contributing
-Want to help build _Taipy Core_? Check out our [`CONTRIBUTING.md`](CONTRIBUTING.md) file.
+Want to help build *Taipy Core*? Check out our [`CONTRIBUTING.md`](../../CONTRIBUTING.md) file.
## Code of conduct
-Want to be part of the _Taipy Core_ community? Check out our
-[`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) file.
+Want to be part of the *Taipy Core* community? Check out our
+[`CODE_OF_CONDUCT.md`](../../CODE_OF_CONDUCT.md) file.
## Directory Structure
@@ -62,19 +62,17 @@ Want to be part of the _Taipy Core_ community? Check out our
- `config/`: Configuration definition, management and implementation.
- `cycle/`: Work cycle definition, management and implementation.
- `data/`: Data Node definition, management and implementation.
- - `exceptions/`: _taipy-core_ exceptions.
+ - `exceptions/`: *taipy-core* exceptions.
- `job/`: Job definition, management and implementation.
- `notification/`: Notification management system implementation.
- `scenario/`: Scenario definition, management and implementation.
- `sequence/`: Sequence definition, management and implementation.
- `submission/`: Submission definition, management and implementation.
- `task/`: Task definition, management and implementation.
- - `taipy.py`: Main entrypoint for _taipy-core_ runtime features.
- - `CODE_OF_CONDUCT.md`: Code of conduct for members and contributors of _taipy-core_.
- - `CONTRIBUTING.md`: Instructions to contribute to _taipy-core_.
- - `INSTALLATION.md`: Instructions to install _taipy-core_.
+ - `taipy.py`: Main entrypoint for *taipy-core* runtime features.
+ - `INSTALLATION.md`: Instructions to install *taipy-core*.
- `LICENSE`: The Apache 2.0 License.
- `README.md`: Current file.
- - `setup.py`: The setup script managing building, distributing, and installing _taipy-core_.
+ - `setup.py`: The setup script managing building, distributing, and installing *taipy-core*.
- `tests/`:
- `core/`: Unit tests following the `taipy/core/` structure.
diff --git a/taipy/core/package_desc.md b/taipy/core/package_desc.md
new file mode 100644
index 0000000000..05cdadf331
--- /dev/null
+++ b/taipy/core/package_desc.md
@@ -0,0 +1,44 @@
+# Taipy Core
+
+## License
+
+Copyright 2021-2024 Avaiga Private Limited
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+except in compliance with the License. You may obtain a copy of the License at
+[http://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+Unless required by applicable law or agreed to in writing, software distributed under the
+License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+either express or implied. See the License for the specific language governing permissions
+and limitations under the License.
+
+## What is Taipy Core
+
+Taipy is a Python library for creating Business Applications. More information on our
+[website](https://www.taipy.io). The Taipy core package includes business-oriented features such as Data Integration and Management, Scenario Management, What-if analysis, and Version management.
+
+## Installation
+
+The latest stable version of *taipy-core* is available through *pip*:
+```bash
+pip install taipy-core
+```
+
+You can install the development version of *taipy-core* with *pip* and *git* via the taipy repository:
+```bash
+pip install git+https://git@github.com/Avaiga/taipy
+```
+
+This command installs the development version of *taipy* package in the Python environment with all
+its dependencies, including the *taipy-core* package.
+
+If you need the source code for *taipy-core* on your system so you can see how things are done or
+maybe participate in the improvement of the packages, you can clone the GitHub repository:
+
+```bash
+git clone https://github.com/Avaiga/taipy.git
+```
+
+This creates the 'taipy' directory holding all the package's source code, and the 'taipy-core'
+source code is in the 'taipy/core' directory.
diff --git a/taipy/core/setup.py b/taipy/core/setup.py
index 7e944ed7e9..52fd69db09 100644
--- a/taipy/core/setup.py
+++ b/taipy/core/setup.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
# Copyright 2021-2024 Avaiga Private Limited
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
@@ -11,7 +9,8 @@
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
-"""The setup script."""
+"""The setup script for taipy-core package"""
+
import json
import os
from pathlib import Path
@@ -20,8 +19,7 @@
root_folder = Path(__file__).parent
-with open("README.md") as readme_file:
- readme = readme_file.read()
+package_desc = Path("package_desc.md").read_text("UTF-8")
version_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "version.json")
with open(version_path) as version_file:
@@ -31,7 +29,6 @@
version_string = f"{version_string}.{vext}"
-
def get_requirements():
# get requirements from the different setups in tools/packages (removing taipy packages)
reqs = set()
@@ -61,6 +58,7 @@ def get_requirements():
author_email="dev@taipy.io",
python_requires=">=3.8",
classifiers=[
+ "Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Natural Language :: English",
@@ -70,10 +68,16 @@ def get_requirements():
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
+ "Topic :: Software Development",
+ "Topic :: Scientific/Engineering",
+ "Operating System :: Microsoft :: Windows",
+ "Operating System :: POSIX",
+ "Operating System :: Unix",
+ "Operating System :: MacOS",
],
description="A Python library to build powerful and customized data-driven back-end applications.",
install_requires=get_requirements(),
- long_description=readme,
+ long_description=package_desc,
long_description_content_type="text/markdown",
license="Apache License 2.0",
keywords="taipy-core",
@@ -83,8 +87,16 @@ def get_requirements():
data_files=[('version', ['version.json'])],
test_suite="tests",
tests_require=test_requirements,
- url="https://github.com/avaiga/taipy-core",
version=version_string,
zip_safe=False,
extras_require=extras_require,
+ project_urls={
+ "Homepage": "https://www.taipy.io",
+ "Documentation": "https://docs.taipy.io",
+ "Source": "https://github.com/Avaiga/taipy",
+ "Download": "https://pypi.org/project/taipy/#files",
+ "Tracker": "https://github.com/Avaiga/taipy/issues",
+ "Security": "https://github.com/Avaiga/taipy?tab=security-ov-file#readme",
+ f"Release notes": "https://docs.taipy.io/en/release-{version_string}/relnotes/",
+ },
)
diff --git a/taipy/gui/CODE_OF_CONDUCT.md b/taipy/gui/CODE_OF_CONDUCT.md
deleted file mode 100644
index c231f6cf10..0000000000
--- a/taipy/gui/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1,128 +0,0 @@
-# Contributor Covenant Code of Conduct
-
-## Our Pledge
-
-We as members, contributors, and leaders pledge to make participation in our
-community a harassment-free experience for everyone, regardless of age, body
-size, visible or invisible disability, ethnicity, sex characteristics, gender
-identity and expression, level of experience, education, socioeconomic status,
-nationality, personal appearance, race, religion, or sexual identity
-and orientation.
-
-We pledge to act and interact in ways that contribute to an open, welcoming,
-diverse, inclusive, and healthy community.
-
-## Our Standards
-
-Examples of behavior that contributes to a positive environment for our
-community include:
-
-* Demonstrating empathy and kindness toward other people.
-* Being respectful of differing opinions, viewpoints, and experiences.
-* Giving and gracefully accepting constructive feedback.
-* Accepting responsibility and apologizing to those affected by our mistakes,
- and learning from the experience.
-* Focusing on what is best not just for us as individuals, but for the
- overall community.
-
-Examples of unacceptable behavior include:
-
-* The use of sexualized language or imagery, and sexual attention or
- advances of any kind.
-* Trolling, insulting or derogatory comments, and personal or political attacks
-* Public or private harassment.
-* Publishing others' private information, such as a physical or email
- address, without their explicit permission.
-* Other conduct which could reasonably be considered inappropriate in a
- professional setting.
-
-## Enforcement Responsibilities
-
-Community leaders are responsible for clarifying and enforcing our standards of
-acceptable behavior and will take appropriate and fair corrective action in
-response to any behavior that they deem inappropriate, threatening, offensive,
-or harmful.
-
-Community leaders have the right and responsibility to remove, edit, or reject
-comments, commits, code, wiki edits, issues, and other contributions that are
-not aligned to this Code of Conduct, and will communicate reasons for moderation
-decisions when appropriate.
-
-## Scope
-
-This Code of Conduct applies within all community spaces, and also applies when
-an individual is officially representing the community in public spaces.
-Examples of representing our community include using an official e-mail address,
-posting via an official social media account, or acting as an appointed
-representative at an online or offline event.
-
-## Enforcement
-
-Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported to the community leaders responsible for enforcement at
-rnd@avaiga.com.
-All complaints will be reviewed and investigated promptly and fairly.
-
-All community leaders are obligated to respect the privacy and security of the
-reporter of any incident.
-
-## Enforcement Guidelines
-
-Community leaders will follow these Community Impact Guidelines in determining
-the consequences for any action they deem in violation of this Code of Conduct:
-
-### 1. Correction
-
-**Community Impact**: Use of inappropriate language or other behavior deemed
-unprofessional or unwelcome in the community.
-
-**Consequence**: A private, written warning from community leaders, providing
-clarity around the nature of the violation and an explanation of why the
-behavior was inappropriate. A public apology may be requested.
-
-### 2. Warning
-
-**Community Impact**: A violation through a single incident or series
-of actions.
-
-**Consequence**: A warning with consequences for continued behavior. No
-interaction with the people involved, including unsolicited interaction with
-those enforcing the Code of Conduct, for a specified period of time. This
-includes avoiding interactions in community spaces as well as external channels
-like social media. Violating these terms may lead to a temporary or
-permanent ban.
-
-### 3. Temporary Ban
-
-**Community Impact**: A serious violation of community standards, including
-sustained inappropriate behavior.
-
-**Consequence**: A temporary ban from any sort of interaction or public
-communication with the community for a specified period of time. No public or
-private interaction with the people involved, including unsolicited interaction
-with those enforcing the Code of Conduct, is allowed during this period.
-Violating these terms may lead to a permanent ban.
-
-### 4. Permanent Ban
-
-**Community Impact**: Demonstrating a pattern of violation of community
-standards, including sustained inappropriate behavior, harassment of an
-individual, or aggression toward or disparagement of classes of individuals.
-
-**Consequence**: A permanent ban from any sort of public interaction within
-the community.
-
-## Attribution
-
-This Code of Conduct is adapted from the [Contributor Covenant][homepage],
-version 2.0, available at
-https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
-
-Community Impact Guidelines were inspired by [Mozilla's code of conduct
-enforcement ladder](https://github.com/mozilla/diversity).
-
-[homepage]: https://www.contributor-covenant.org
-
-For answers to common questions about this code of conduct, see the FAQ at
-https://www.contributor-covenant.org/faq. Translations are available at
-https://www.contributor-covenant.org/translations.
diff --git a/taipy/gui/CONTRIBUTING.md b/taipy/gui/CONTRIBUTING.md
deleted file mode 100644
index f4b1a68c87..0000000000
--- a/taipy/gui/CONTRIBUTING.md
+++ /dev/null
@@ -1,135 +0,0 @@
-# Contributions
-
-Thanks for your interest in helping improve Taipy! Contributions are welcome, and they are greatly appreciated!
-Every little help and credit will always be given.
-
-There are multiple ways to contribute to Taipy: code, but also reporting bugs, creating feature requests, helping
-other users in our forums, [stack**overflow**](https://stackoverflow.com/), etc.
-
-Today the only way to communicate with the Taipy team is by GitHub issues.
-
-## Never contributed on an open source project before ?
-
-Have a look on this [GitHub documentation](https://docs.github.com/en/get-started/quickstart/contributing-to-projects).
-
-## Report bugs
-
-Reporting bugs is through [GitHub issues](https://github.com/Avaiga/taipy/issues).
-
-Please report relevant information and preferably code that exhibits the problem. We provide templates to help you
-describe the issue.
-
-The Taipy team will analyse and try to reproduce the bug to provide feedback. If confirmed, we will add a priority
-to the issue and add it in our backlog. Feel free to propose a pull request to fix it.
-
-## Issue reporting, feedback, proposal, design or any other comment
-
-Any feedback or proposal is greatly appreciated! Do not hesitate to create an issue with the appropriate template on
-[GitHub](https://github.com/Avaiga/taipy/issues).
-
-The Taipy team will analyse your issue and return to you as soon as possible.
-
-## Improve Documentation
-
-Do not hesitate to create an issue or pull request directly on the
-[taipy-doc repository](https://github.com/Avaiga/taipy-doc).
-
-## Implement Features
-
-The Taipy team manages its backlog in private. Each issue that will be done during our current sprint is
-attached to the `current sprint`. Please, do not work on it, the Taipy team is on it.
-
-## Code organisation
-
-Taipy is organised in five main repositories:
-
-- [taipy-config](https://github.com/Avaiga/taipy-config).
-- [taipy-core](https://github.com/Avaiga/taipy-core).
-- [taipy-gui](https://github.com/Avaiga/taipy-gui).
-- [taipy-rest](https://github.com/Avaiga/taipy-rest).
-- [taipy](https://github.com/Avaiga/taipy) brings previous packages in a single one.
-
-## Coding style and best practices
-
-### Python
-
-Taipy's repositories follow the [PEP 8](https://www.python.org/dev/peps/pep-0008/) and
-[PEP 484](https://www.python.org/dev/peps/pep-0484/) coding convention.
-
-## TypeScript
-
-Taipy's repositories use the [ESLint](https://eslint.org/) and
-[TypeScript ESLint](https://github.com/typescript-eslint/typescript-eslint) plugin to ensure a common set of rules.
-
-### Git branches
-
-All new development happens in the `develop` branch. All pull requests should target that branch.
-We are following a strict branch naming convention based on the pattern: `/#[IssueSummary]`.
-
-Where:
-
-- `` would be one of:
- - feature: new feature implementation, or improvement of a feature.
- - bug: bug fix.
- - review: change provoked by review comment not immediately taken care of.
- - refactor: refactor of a piece of code.
- - doc: doc changes (complement or typo fixes…).
- - build: in relation with the build process.
-- `` is the processed issue identifier. The advantage of explicitly indicating the issue number is that in
- GitHub, a pull request page shows a direct link to the issue description.
-- `[IssueSummary]` is a short summary of the issue topic, not including spaces, using Camel case or lower-case,
- dash-separated words. This summary, with its dash (‘-’) symbol prefix, is optional.
-
-
-## Contribution workflow
-
-Find an issue without the label `current sprint` and add a comment on it to inform the community that you are
-working on it.
-
-1. Make your [own fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) of the repository
- target by the issue. Clone it on our local machine, then go inside the directory.
-
-2. We are working with [Pipenv](https://github.com/pypa/pipenv) for our virtualenv.
- Create a local env and install development package by running `pipenv install --dev`, then run tests with `pipenv
- run pytest` to verify your setup.
-
-3. For convention help, we provide a [pre-commit](https://pre-commit.com/hooks.html) file.
- This tool will run before each commit and will automatically reformat code or raise warnings and errors based on the
- code format or Python typing.
- You can install and setup it up by doing:
- ```bash
- pipenv install pre-commit
- pipenv run python -m pre-commit install
- ```
-
-4. Make the changes.
- You may want to also add your GitHub login as a new line of the `contributors.txt` file located at the root
- of this repository. We are using it to list our contributors in the Taipy documentation
- (see the "Contributing > Contributors" section) and thank them.
-
-5. Create a [pull request from your fork](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork).
- Keep your pull request as __draft__ until your work is finished.
- Do not hesitate to add a comment for help or questions.
- Before you submit a pull request for review from your forked repo, check that it meets these guidelines:
- - Include tests.
- - Code is [rebase](http://stackoverflow.com/a/7244456/1110993).
- - License is present.
- - pre-commit works - without mypy error.
- - GitHub's actions are passing.
-
-6. The taipy team will have a look at your Pull Request and will give feedback. If every requirement is valid, your
- work will be added in the next release, congratulation!
-
-
-## Dependency management
-
-Taipy comes with multiple optional packages. You can find the list directly in the product or Taipy's packages.
-The back-end Pipfile does not install by default optional packages due to `pyodbc` requiring a driver's manual
-installation. This is not the behaviour for the front-end that installs all optional packages through its Pipfile.
-
-If you are a contributor on Taipy, be careful with dependencies, do not forget to install or uninstall depending on
-your issue.
-
-If you need to add a new dependency to Taipy, do not forget to add it in the `Pipfile` and the `setup.py`.
-Keep in mind that dependency is a vector of attack. The Taipy team limits the usage of external dependencies at the
-minimum.
diff --git a/taipy/gui/INSTALLATION.md b/taipy/gui/INSTALLATION.md
index ee39d494e8..af89a9b8f6 100644
--- a/taipy/gui/INSTALLATION.md
+++ b/taipy/gui/INSTALLATION.md
@@ -12,8 +12,6 @@ you plan to use it:
- [Debugging the JavaScript bundle](#debugging-the-javascript-bundle)
- [Running the tests](#running-the-tests)
-
-
Taipy GUI needs your system to have **Python 3.8** or above installed.
## Installing the latest release
@@ -129,7 +127,7 @@ pip install pipenv
pipenv install --dev
```
-Then you can run _taipy-gui_ tests with the following command:
+Then you can run *taipy-gui* tests with the following command:
```bash
pipenv run pytest tests/gui
diff --git a/taipy/gui/README.md b/taipy/gui/README.md
index 802017855d..0cede97d33 100644
--- a/taipy/gui/README.md
+++ b/taipy/gui/README.md
@@ -36,11 +36,11 @@ Want to install and try *Taipy GUI*? Check out our [`INSTALLATION.md`](INSTALLAT
## Contributing
-Want to help build *Taipy GUI*? Check out our [`CONTRIBUTING.md`](CONTRIBUTING.md) file.
+Want to help build *Taipy GUI*? Check out our [`CONTRIBUTING.md`](../../CONTRIBUTING.md) file.
## Code of conduct
-Want to be part of the *Taipy GUI* community? Check out our [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) file.
+Want to be part of the *Taipy GUI* community? Check out our [`CODE_OF_CONDUCT.md`](../../CODE_OF_CONDUCT.md) file.
## Directory Structure
@@ -48,8 +48,6 @@ Want to be part of the *Taipy GUI* community? Check out our [`CODE_OF_CONDUCT.md
- `taipy/gui`: Python source files;
- `tests/gui`: Unit tests;
- `tools`: Files used to document `taipy-gui`;
-- `CODE_OF_CONDUCT.md`: Code of conduct for members and contributors of `taipy-gui`;
-- `CONTRIBUTING.md`: Instructions to contribute to `taipy-gui`;
- `INSTALLATION.md`: Instructions to build and install `taipy-gui`;
- `LICENSE`: The Apache 2.0 License;
- `README.md`: Current file;
diff --git a/taipy/gui/package_desc.md b/taipy/gui/package_desc.md
new file mode 100644
index 0000000000..a7c4557ab5
--- /dev/null
+++ b/taipy/gui/package_desc.md
@@ -0,0 +1,110 @@
+# Taipy GUI
+
+## License
+
+Copyright 2021-2024 Avaiga Private Limited
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+except in compliance with the License. You may obtain a copy of the License at
+[http://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+Unless required by applicable law or agreed to in writing, software distributed under the
+License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+either express or implied. See the License for the specific language governing permissions
+and limitations under the License.
+
+## What is Taipy GUI
+
+Taipy is a Python library for creating Business Applications. More information on our
+[website](https://www.taipy.io). Taipy is split into multiple repositories including *taipy-gui* to let users
+install the minimum they need.
+
+Taipy GUI provides Python classes that make it easy to create powerful web apps in minutes.
+
+## Installation
+
+There are different ways to install Taipy GUI, depending on how
+you plan to use it:
+
+- [Installing the latest release](#installing-the-latest-release)
+- [Installing the development version](#installing-the-development-version)
+ - [1 - Clone the repository](#1---clone-the-repository)
+ - [2 - Install Node.js](#2---install-nodejs)
+ - [3 - Build the JavaScript bundle](#3---build-the-javascript-bundle)
+ - [4 - Install the package as editable](#4---install-the-package-as-editable)
+- [Debugging the JavaScript bundle](#debugging-the-javascript-bundle)
+- [Running the tests](#running-the-tests)
+
+Taipy GUI needs your system to have **Python 3.8** or above installed.
+
+### Installing the latest release
+
+The easiest way to install Taipy GUI is using pip
+
+Run the command:
+```bash
+pip install taipy-gui
+```
+
+### Installing the development version
+
+The development version of Taipy GUI is updated daily with changes from the
+Taipy R&D and external contributors that we praise for their input.
+
+You should also install this version if you want to contribute to the development of Taipy GUI. Here are the steps to follow:
+
+#### 1 - Clone the Taipy repository
+
+Clone the Taipy repository using the following command:
+```bash
+git clone https://github.com/Avaiga/taipy.git
+```
+
+This creates the 'taipy' directory holding all the package's source code, and the 'taipy-gui'
+source code is in the 'taipy/gui' directory.
+
+#### 2 - Install Node.js
+
+Taipy GUI has some code dealing with the client side of the web applications.
+This code is written in TypeScript, relies on React components, and is packaged into a JavaScript bundle
+that is sent to browsers when they connect to all Taipy GUI applications.
+
+This bundle needs to be built before being usable by Taipy GUI.
+
+First you need to install Node.js on your system.
+
+**Select the "Recommended For Most Users" version, and follow the instructions for your system.**
+
+**Select "Automatically install the necessary tools" when asked.**
+
+#### 3 - Build the JavaScript bundle
+
+Open a new terminal and run the following commands:
+
+- Install the DOM dependencies
+```bash
+cd gui
+cd dom
+npm i
+```
+- Install the web app dependencies
+```bash
+cd ..
+npm i --omit=optional
+```
+- Build the web app
+```bash
+npm run build
+```
+
+After a few minutes, this creates the directory `taipy/gui/webapp` in the root directory of the repository
+where the front-end code for Taipy GUI is split into a set of JavaScript bundles.
+
+#### 4 - Install the package as editable
+
+In a terminal, **at the root of the repository**, run:
+```bash
+pip install -e . --user
+```
+
+This should install the dev version of Taipy GUI as editable. You are now ready to use it.
diff --git a/taipy/gui/setup.py b/taipy/gui/setup.py
index f7d4cda9e6..0d0f8a6de6 100644
--- a/taipy/gui/setup.py
+++ b/taipy/gui/setup.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
# Copyright 2021-2024 Avaiga Private Limited
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
@@ -11,7 +9,7 @@
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
-"""The setup script."""
+"""The setup script for taipy-gui package"""
import json
import os
@@ -22,7 +20,7 @@
root_folder = Path(__file__).parent
-readme = Path("README.md").read_text()
+package_desc = Path("package_desc.md").read_text("UTF-8")
version_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "version.json")
with open(version_path) as version_file:
@@ -75,6 +73,7 @@ def run(self):
author_email="dev@taipy.io",
python_requires=">=3.8",
classifiers=[
+ "Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Natural Language :: English",
@@ -84,9 +83,15 @@ def run(self):
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
+ "Topic :: Software Development",
+ "Topic :: Scientific/Engineering",
+ "Operating System :: Microsoft :: Windows",
+ "Operating System :: POSIX",
+ "Operating System :: Unix",
+ "Operating System :: MacOS",
],
description="Low-code library to create graphical user interfaces on the Web for your Python applications.",
- long_description=readme,
+ long_description=package_desc,
long_description_content_type="text/markdown",
install_requires=get_requirements(),
license="Apache License 2.0",
@@ -97,9 +102,17 @@ def run(self):
packages=find_namespace_packages(where=".") + find_packages(include=["taipy", "taipy.gui", "taipy.gui.*"]),
test_suite="tests",
tests_require=test_requirements,
- url="https://github.com/avaiga/taipy-gui",
version=version_string,
zip_safe=False,
extras_require=extras_require,
cmdclass={"build_py": NPMInstall},
+ project_urls={
+ "Homepage": "https://www.taipy.io",
+ "Documentation": "https://docs.taipy.io",
+ "Source": "https://github.com/Avaiga/taipy",
+ "Download": "https://pypi.org/project/taipy/#files",
+ "Tracker": "https://github.com/Avaiga/taipy/issues",
+ "Security": "https://github.com/Avaiga/taipy?tab=security-ov-file#readme",
+ f"Release notes": "https://docs.taipy.io/en/release-{version_string}/relnotes/",
+ },
)
diff --git a/taipy/rest/CODE_OF_CONDUCT.md b/taipy/rest/CODE_OF_CONDUCT.md
deleted file mode 100644
index c231f6cf10..0000000000
--- a/taipy/rest/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1,128 +0,0 @@
-# Contributor Covenant Code of Conduct
-
-## Our Pledge
-
-We as members, contributors, and leaders pledge to make participation in our
-community a harassment-free experience for everyone, regardless of age, body
-size, visible or invisible disability, ethnicity, sex characteristics, gender
-identity and expression, level of experience, education, socioeconomic status,
-nationality, personal appearance, race, religion, or sexual identity
-and orientation.
-
-We pledge to act and interact in ways that contribute to an open, welcoming,
-diverse, inclusive, and healthy community.
-
-## Our Standards
-
-Examples of behavior that contributes to a positive environment for our
-community include:
-
-* Demonstrating empathy and kindness toward other people.
-* Being respectful of differing opinions, viewpoints, and experiences.
-* Giving and gracefully accepting constructive feedback.
-* Accepting responsibility and apologizing to those affected by our mistakes,
- and learning from the experience.
-* Focusing on what is best not just for us as individuals, but for the
- overall community.
-
-Examples of unacceptable behavior include:
-
-* The use of sexualized language or imagery, and sexual attention or
- advances of any kind.
-* Trolling, insulting or derogatory comments, and personal or political attacks
-* Public or private harassment.
-* Publishing others' private information, such as a physical or email
- address, without their explicit permission.
-* Other conduct which could reasonably be considered inappropriate in a
- professional setting.
-
-## Enforcement Responsibilities
-
-Community leaders are responsible for clarifying and enforcing our standards of
-acceptable behavior and will take appropriate and fair corrective action in
-response to any behavior that they deem inappropriate, threatening, offensive,
-or harmful.
-
-Community leaders have the right and responsibility to remove, edit, or reject
-comments, commits, code, wiki edits, issues, and other contributions that are
-not aligned to this Code of Conduct, and will communicate reasons for moderation
-decisions when appropriate.
-
-## Scope
-
-This Code of Conduct applies within all community spaces, and also applies when
-an individual is officially representing the community in public spaces.
-Examples of representing our community include using an official e-mail address,
-posting via an official social media account, or acting as an appointed
-representative at an online or offline event.
-
-## Enforcement
-
-Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported to the community leaders responsible for enforcement at
-rnd@avaiga.com.
-All complaints will be reviewed and investigated promptly and fairly.
-
-All community leaders are obligated to respect the privacy and security of the
-reporter of any incident.
-
-## Enforcement Guidelines
-
-Community leaders will follow these Community Impact Guidelines in determining
-the consequences for any action they deem in violation of this Code of Conduct:
-
-### 1. Correction
-
-**Community Impact**: Use of inappropriate language or other behavior deemed
-unprofessional or unwelcome in the community.
-
-**Consequence**: A private, written warning from community leaders, providing
-clarity around the nature of the violation and an explanation of why the
-behavior was inappropriate. A public apology may be requested.
-
-### 2. Warning
-
-**Community Impact**: A violation through a single incident or series
-of actions.
-
-**Consequence**: A warning with consequences for continued behavior. No
-interaction with the people involved, including unsolicited interaction with
-those enforcing the Code of Conduct, for a specified period of time. This
-includes avoiding interactions in community spaces as well as external channels
-like social media. Violating these terms may lead to a temporary or
-permanent ban.
-
-### 3. Temporary Ban
-
-**Community Impact**: A serious violation of community standards, including
-sustained inappropriate behavior.
-
-**Consequence**: A temporary ban from any sort of interaction or public
-communication with the community for a specified period of time. No public or
-private interaction with the people involved, including unsolicited interaction
-with those enforcing the Code of Conduct, is allowed during this period.
-Violating these terms may lead to a permanent ban.
-
-### 4. Permanent Ban
-
-**Community Impact**: Demonstrating a pattern of violation of community
-standards, including sustained inappropriate behavior, harassment of an
-individual, or aggression toward or disparagement of classes of individuals.
-
-**Consequence**: A permanent ban from any sort of public interaction within
-the community.
-
-## Attribution
-
-This Code of Conduct is adapted from the [Contributor Covenant][homepage],
-version 2.0, available at
-https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
-
-Community Impact Guidelines were inspired by [Mozilla's code of conduct
-enforcement ladder](https://github.com/mozilla/diversity).
-
-[homepage]: https://www.contributor-covenant.org
-
-For answers to common questions about this code of conduct, see the FAQ at
-https://www.contributor-covenant.org/faq. Translations are available at
-https://www.contributor-covenant.org/translations.
diff --git a/taipy/rest/CONTRIBUTING.md b/taipy/rest/CONTRIBUTING.md
deleted file mode 100644
index f4b1a68c87..0000000000
--- a/taipy/rest/CONTRIBUTING.md
+++ /dev/null
@@ -1,135 +0,0 @@
-# Contributions
-
-Thanks for your interest in helping improve Taipy! Contributions are welcome, and they are greatly appreciated!
-Every little help and credit will always be given.
-
-There are multiple ways to contribute to Taipy: code, but also reporting bugs, creating feature requests, helping
-other users in our forums, [stack**overflow**](https://stackoverflow.com/), etc.
-
-Today the only way to communicate with the Taipy team is by GitHub issues.
-
-## Never contributed on an open source project before ?
-
-Have a look on this [GitHub documentation](https://docs.github.com/en/get-started/quickstart/contributing-to-projects).
-
-## Report bugs
-
-Reporting bugs is through [GitHub issues](https://github.com/Avaiga/taipy/issues).
-
-Please report relevant information and preferably code that exhibits the problem. We provide templates to help you
-describe the issue.
-
-The Taipy team will analyse and try to reproduce the bug to provide feedback. If confirmed, we will add a priority
-to the issue and add it in our backlog. Feel free to propose a pull request to fix it.
-
-## Issue reporting, feedback, proposal, design or any other comment
-
-Any feedback or proposal is greatly appreciated! Do not hesitate to create an issue with the appropriate template on
-[GitHub](https://github.com/Avaiga/taipy/issues).
-
-The Taipy team will analyse your issue and return to you as soon as possible.
-
-## Improve Documentation
-
-Do not hesitate to create an issue or pull request directly on the
-[taipy-doc repository](https://github.com/Avaiga/taipy-doc).
-
-## Implement Features
-
-The Taipy team manages its backlog in private. Each issue that will be done during our current sprint is
-attached to the `current sprint`. Please, do not work on it, the Taipy team is on it.
-
-## Code organisation
-
-Taipy is organised in five main repositories:
-
-- [taipy-config](https://github.com/Avaiga/taipy-config).
-- [taipy-core](https://github.com/Avaiga/taipy-core).
-- [taipy-gui](https://github.com/Avaiga/taipy-gui).
-- [taipy-rest](https://github.com/Avaiga/taipy-rest).
-- [taipy](https://github.com/Avaiga/taipy) brings previous packages in a single one.
-
-## Coding style and best practices
-
-### Python
-
-Taipy's repositories follow the [PEP 8](https://www.python.org/dev/peps/pep-0008/) and
-[PEP 484](https://www.python.org/dev/peps/pep-0484/) coding convention.
-
-## TypeScript
-
-Taipy's repositories use the [ESLint](https://eslint.org/) and
-[TypeScript ESLint](https://github.com/typescript-eslint/typescript-eslint) plugin to ensure a common set of rules.
-
-### Git branches
-
-All new development happens in the `develop` branch. All pull requests should target that branch.
-We are following a strict branch naming convention based on the pattern: `/#[IssueSummary]`.
-
-Where:
-
-- `` would be one of:
- - feature: new feature implementation, or improvement of a feature.
- - bug: bug fix.
- - review: change provoked by review comment not immediately taken care of.
- - refactor: refactor of a piece of code.
- - doc: doc changes (complement or typo fixes…).
- - build: in relation with the build process.
-- `` is the processed issue identifier. The advantage of explicitly indicating the issue number is that in
- GitHub, a pull request page shows a direct link to the issue description.
-- `[IssueSummary]` is a short summary of the issue topic, not including spaces, using Camel case or lower-case,
- dash-separated words. This summary, with its dash (‘-’) symbol prefix, is optional.
-
-
-## Contribution workflow
-
-Find an issue without the label `current sprint` and add a comment on it to inform the community that you are
-working on it.
-
-1. Make your [own fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) of the repository
- target by the issue. Clone it on our local machine, then go inside the directory.
-
-2. We are working with [Pipenv](https://github.com/pypa/pipenv) for our virtualenv.
- Create a local env and install development package by running `pipenv install --dev`, then run tests with `pipenv
- run pytest` to verify your setup.
-
-3. For convention help, we provide a [pre-commit](https://pre-commit.com/hooks.html) file.
- This tool will run before each commit and will automatically reformat code or raise warnings and errors based on the
- code format or Python typing.
- You can install and setup it up by doing:
- ```bash
- pipenv install pre-commit
- pipenv run python -m pre-commit install
- ```
-
-4. Make the changes.
- You may want to also add your GitHub login as a new line of the `contributors.txt` file located at the root
- of this repository. We are using it to list our contributors in the Taipy documentation
- (see the "Contributing > Contributors" section) and thank them.
-
-5. Create a [pull request from your fork](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork).
- Keep your pull request as __draft__ until your work is finished.
- Do not hesitate to add a comment for help or questions.
- Before you submit a pull request for review from your forked repo, check that it meets these guidelines:
- - Include tests.
- - Code is [rebase](http://stackoverflow.com/a/7244456/1110993).
- - License is present.
- - pre-commit works - without mypy error.
- - GitHub's actions are passing.
-
-6. The taipy team will have a look at your Pull Request and will give feedback. If every requirement is valid, your
- work will be added in the next release, congratulation!
-
-
-## Dependency management
-
-Taipy comes with multiple optional packages. You can find the list directly in the product or Taipy's packages.
-The back-end Pipfile does not install by default optional packages due to `pyodbc` requiring a driver's manual
-installation. This is not the behaviour for the front-end that installs all optional packages through its Pipfile.
-
-If you are a contributor on Taipy, be careful with dependencies, do not forget to install or uninstall depending on
-your issue.
-
-If you need to add a new dependency to Taipy, do not forget to add it in the `Pipfile` and the `setup.py`.
-Keep in mind that dependency is a vector of attack. The Taipy team limits the usage of external dependencies at the
-minimum.
diff --git a/taipy/rest/INSTALLATION.md b/taipy/rest/INSTALLATION.md
index 9c7051281f..51a4641534 100644
--- a/taipy/rest/INSTALLATION.md
+++ b/taipy/rest/INSTALLATION.md
@@ -1,21 +1,21 @@
# Installation
-The latest stable version of _taipy-rest_ is available through _pip_:
+The latest stable version of *taipy-rest* is available through *pip*:
```bash
pip install taipy-rest
```
## Development version
-You can install the development version of _taipy-rest_ with _pip_ and _git_ via the taipy repository:
+You can install the development version of *taipy-rest* with *pip* and *git* via the taipy repository:
```bash
pip install git+https://git@github.com/Avaiga/taipy
```
-This command installs the development version of _taipy_ package in the Python environment with all
-its dependencies, including the _taipy-rest_ package.
+This command installs the development version of *taipy* package in the Python environment with all
+its dependencies, including the *taipy-rest* package.
-If you need the source code for _taipy-rest_ on your system so you can see how things are done or
+If you need the source code for *taipy-rest* on your system so you can see how things are done or
maybe participate in the improvement of the packages, you can clone the GitHub repository:
```bash
@@ -27,7 +27,7 @@ source code is in the 'taipy/rest' directory.
# Configuration
-Before running, we need to define some variables. Taipy rest APIs depend on pre-configuration of taipy config objects,
+Before running, we need to define some variables. Taipy REST APIs depend on pre-configuration of taipy config objects,
i.e, is mandatory to define all configuration of DataNodes, Tasks, Sequences, etc. The file containing this
configuration needs to be passed to the application at runtime. The following variable needs to be defined:
- TAIPY_SETUP_FILE: the path to the file containing all of taipy object configuration
@@ -69,7 +69,7 @@ pip install gunicorn
gunicorn myapi.wsgi:app
```
-And that's it ! Gunicorn is running on port 8000
+And that's it! Gunicorn is running on port 8000.
If you chose gunicorn as your wsgi server, the proper commands should be in your docker-compose file.
@@ -82,7 +82,7 @@ pip install uwsgi
uwsgi --http 127.0.0.1:5000 --module myapi.wsgi:app
```
-And that's it ! Uwsgi is running on port 5000
+And that's it! Uwsgi is running on port 5000.
If you chose uwsgi as your wsgi server, the proper commands should be in your docker-compose file.
@@ -111,7 +111,7 @@ Then release the image:
heroku container:release web
```
-You can now access **taipy rest** on the URL that was returned on the `heroku create` command.
+You can now access *taipy-rest* on the URL that was returned on the `heroku create` command.
# Documentation
diff --git a/taipy/rest/README.md b/taipy/rest/README.md
index 00b6e98921..e27fe957b6 100644
--- a/taipy/rest/README.md
+++ b/taipy/rest/README.md
@@ -1,4 +1,4 @@
-# Taipy-REST
+# Taipy REST
## License
Copyright 2021-2024 Avaiga Private Limited
@@ -27,16 +27,16 @@ and limitations under the License.
Taipy is a Python library for creating Business Applications. More information on our
[website](https://www.taipy.io). Taipy is split into multiple repositories including
-_taipy-core_ and _taipy-rest_ to let users install the minimum they need.
+*taipy-core* and *taipy-rest* to let users install the minimum they need.
Taipy Core mostly includes business-oriented
features. It helps users create and manage business applications and improve analyses
capability through time, conditions and hypothesis.
Taipy REST is a set of APIs built on top of the
-_taipy-core_ library developed by Avaiga. This project is meant to be used as a complement
-for **taipy** and its goal is to enable automation through rest APIs of processes built
-on taipy.
+*taipy-core* library developed by Avaiga. This project is meant to be used as a complement
+for Taipy and its goal is to enable automation through rest APIs of processes built
+on Taipy.
The project comes with rest APIs that provide interaction with all of taipy modules:
- DataNodes
@@ -50,16 +50,16 @@ A more in depth documentation of taipy can be found [here](https://docs.taipy.io
## Installation
-Want to install and try _Taipy REST_? Check out our [`INSTALLATION.md`](INSTALLATION.md) file.
+Want to install and try *Taipy REST*? Check out our [`INSTALLATION.md`](INSTALLATION.md) file.
## Contributing
-Want to help build _Taipy REST_? Check out our [`CONTRIBUTING.md`](CONTRIBUTING.md) file.
+Want to help build *Taipy REST*? Check out our [`CONTRIBUTING.md`](../../CONTRIBUTING.md) file.
## Code of conduct
-Want to be part of the _Taipy REST_ community? Check out our
-[`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) file.
+Want to be part of the *Taipy REST* community? Check out our
+[`CODE_OF_CONDUCT.md`](../../CODE_OF_CONDUCT.md) file.
## Directory Structure
@@ -73,12 +73,10 @@ Want to be part of the _Taipy REST_ community? Check out our
- `templates/`: Swagger and redoc templates for generating the documentation
- `app.py`: Flask app configuration and creation
- `extensions.py`: Singletons used on the application factory
- - `rest.py`: Main python entrypoint for running _taipy-rest_ application.
- - `CODE_OF_CONDUCT.md`: Code of conduct for members and contributors of _taipy-rest_.
- - `CONTRIBUTING.md`: Instructions to contribute to _taipy-rest_.
- - `INSTALLATION.md`: Instructions to install _taipy-rest_.
+ - `rest.py`: Main python entrypoint for running *taipy-rest* application.
+ - `INSTALLATION.md`: Instructions to install *taipy-rest*.
- `LICENSE`: The Apache 2.0 License.
- `README.md`: Current file.
- - `setup.py`: The setup script managing building, distributing, and installing _taipy-rest_.
+ - `setup.py`: The setup script managing building, distributing, and installing *taipy-rest*.
- `tests/`:
- `rest/`: Unit tests following the `taipy/rest/` structure.
diff --git a/taipy/rest/package_desc.md b/taipy/rest/package_desc.md
new file mode 100644
index 0000000000..01e1f7d109
--- /dev/null
+++ b/taipy/rest/package_desc.md
@@ -0,0 +1,144 @@
+# Taipy REST
+
+## License
+
+Copyright 2021-2024 Avaiga Private Limited
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+except in compliance with the License. You may obtain a copy of the License at
+[http://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+Unless required by applicable law or agreed to in writing, software distributed under the
+License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+either express or implied. See the License for the specific language governing permissions
+and limitations under the License.
+
+## What is Taipy REST
+
+Taipy is a Python library for creating Business Applications. More information on our
+[website](https://www.taipy.io). Taipy is split into multiple repositories including
+*taipy-core* and *taipy-rest* to let users install the minimum they need.
+
+Taipy Core mostly includes business-oriented
+features. It helps users create and manage business applications and improve analyses
+capability through time, conditions and hypothesis.
+
+Taipy REST is a set of APIs built on top of the
+*taipy-core* library developed by Avaiga. This project is meant to be used as a complement
+for Taipy and its goal is to enable automation through rest APIs of processes built
+on Taipy.
+
+## Installation
+
+The latest stable version of *taipy-rest* is available through *pip*:
+```bash
+pip install taipy-rest
+```
+
+### Development version
+
+You can install the development version of *taipy-rest* with *pip* and *git* via the taipy repository:
+```bash
+pip install git+https://git@github.com/Avaiga/taipy
+```
+
+This command installs the development version of *taipy* package in the Python environment with all
+its dependencies, including the *taipy-rest* package.
+
+If you need the source code for *taipy-rest* on your system so you can see how things are done or
+maybe participate in the improvement of the packages, you can clone the GitHub repository:
+
+```bash
+git clone https://github.com/Avaiga/taipy.git
+```
+
+This creates the 'taipy' directory holding all the package's source code, and the 'taipy-rest'
+source code is in the 'taipy/rest' directory.
+
+## Configuration
+
+Before running, we need to define some variables. Taipy REST APIs depend on pre-configuration of taipy config objects,
+i.e, is mandatory to define all configuration of DataNodes, Tasks, Sequences, etc. The file containing this
+configuration needs to be passed to the application at runtime. The following variable needs to be defined:
+ - TAIPY_SETUP_FILE: the path to the file containing all of taipy object configuration
+
+If using Docker, the folder containing the file needs to be mapped as a volume for it to be accessible to the
+application.
+
+## Running
+
+To run taipy-rest, you need to install the required development packages.
+We recommend using [Pipenv](https://pipenv.pypa.io/en/latest/) to create a virtual environment
+and install the development packages.
+
+```bash
+pip install pipenv
+pipenv install --dev
+```
+
+To run the application you can either run locally with:
+```bash
+flask run
+```
+
+or it can be run inside Docker with:
+```bash
+docker-compose up
+```
+
+You can also run with a Gunicorn or wsgi server.
+
+### Running with Gunicorn
+
+This project provide a simple wsgi entry point to run gunicorn or uwsgi for example.
+
+For gunicorn you only need to run the following commands
+
+```bash
+pip install gunicorn
+
+gunicorn myapi.wsgi:app
+```
+And that's it! Gunicorn is running on port 8000.
+
+If you chose gunicorn as your wsgi server, the proper commands should be in your docker-compose file.
+
+### Running with uwsgi
+
+Pretty much the same as gunicorn here
+
+```bash
+pip install uwsgi
+uwsgi --http 127.0.0.1:5000 --module myapi.wsgi:app
+```
+
+And that's it! Uwsgi is running on port 5000.
+
+If you chose uwsgi as your wsgi server, the proper commands should be in your docker-compose file.
+
+### Deploying on Heroku
+
+Make sure you have a working Docker installation (e.g. docker ps) and that you’re logged in to Heroku (heroku login).
+
+Log in to Container Registry:
+
+```bash
+heroku container:login
+```
+
+Create a heroku app
+```bash
+heroku create
+```
+
+Build the image and push to Container Registry:
+```bash
+heroku container:push web
+```
+
+Then release the image:
+```bash
+heroku container:release web
+```
+
+You can now access *taipy-rest* on the URL that was returned on the `heroku create` command.
diff --git a/taipy/rest/setup.py b/taipy/rest/setup.py
index f0fc05531e..096802c796 100644
--- a/taipy/rest/setup.py
+++ b/taipy/rest/setup.py
@@ -8,6 +8,9 @@
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
+
+"""The setup script for taipy-rest package"""
+
import json
import os
from pathlib import Path
@@ -16,8 +19,7 @@
root_folder = Path(__file__).parent
-with open("README.md") as readme_file:
- readme = readme_file.read()
+package_desc = Path("package_desc.md").read_text("UTF-8")
version_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "version.json")
with open(version_path) as version_file:
@@ -50,11 +52,12 @@ def get_requirements():
packages=find_namespace_packages(where=".") + find_packages(include=["taipy", "taipy.rest"]),
include_package_data=True,
data_files=[('version', ['version.json'])],
- long_description=readme,
+ long_description=package_desc,
long_description_content_type="text/markdown",
description="Library to expose taipy-core REST APIs.",
license="Apache License 2.0",
classifiers=[
+ "Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Natural Language :: English",
@@ -64,6 +67,21 @@ def get_requirements():
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
+ "Topic :: Software Development",
+ "Topic :: Scientific/Engineering",
+ "Operating System :: Microsoft :: Windows",
+ "Operating System :: POSIX",
+ "Operating System :: Unix",
+ "Operating System :: MacOS",
],
install_requires=get_requirements(),
+ project_urls={
+ "Homepage": "https://www.taipy.io",
+ "Documentation": "https://docs.taipy.io",
+ "Source": "https://github.com/Avaiga/taipy",
+ "Download": "https://pypi.org/project/taipy/#files",
+ "Tracker": "https://github.com/Avaiga/taipy/issues",
+ "Security": "https://github.com/Avaiga/taipy?tab=security-ov-file#readme",
+ f"Release notes": "https://docs.taipy.io/en/release-{version_string}/relnotes/",
+ },
)
diff --git a/taipy/templates/CODE_OF_CONDUCT.md b/taipy/templates/CODE_OF_CONDUCT.md
deleted file mode 100644
index c231f6cf10..0000000000
--- a/taipy/templates/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1,128 +0,0 @@
-# Contributor Covenant Code of Conduct
-
-## Our Pledge
-
-We as members, contributors, and leaders pledge to make participation in our
-community a harassment-free experience for everyone, regardless of age, body
-size, visible or invisible disability, ethnicity, sex characteristics, gender
-identity and expression, level of experience, education, socioeconomic status,
-nationality, personal appearance, race, religion, or sexual identity
-and orientation.
-
-We pledge to act and interact in ways that contribute to an open, welcoming,
-diverse, inclusive, and healthy community.
-
-## Our Standards
-
-Examples of behavior that contributes to a positive environment for our
-community include:
-
-* Demonstrating empathy and kindness toward other people.
-* Being respectful of differing opinions, viewpoints, and experiences.
-* Giving and gracefully accepting constructive feedback.
-* Accepting responsibility and apologizing to those affected by our mistakes,
- and learning from the experience.
-* Focusing on what is best not just for us as individuals, but for the
- overall community.
-
-Examples of unacceptable behavior include:
-
-* The use of sexualized language or imagery, and sexual attention or
- advances of any kind.
-* Trolling, insulting or derogatory comments, and personal or political attacks
-* Public or private harassment.
-* Publishing others' private information, such as a physical or email
- address, without their explicit permission.
-* Other conduct which could reasonably be considered inappropriate in a
- professional setting.
-
-## Enforcement Responsibilities
-
-Community leaders are responsible for clarifying and enforcing our standards of
-acceptable behavior and will take appropriate and fair corrective action in
-response to any behavior that they deem inappropriate, threatening, offensive,
-or harmful.
-
-Community leaders have the right and responsibility to remove, edit, or reject
-comments, commits, code, wiki edits, issues, and other contributions that are
-not aligned to this Code of Conduct, and will communicate reasons for moderation
-decisions when appropriate.
-
-## Scope
-
-This Code of Conduct applies within all community spaces, and also applies when
-an individual is officially representing the community in public spaces.
-Examples of representing our community include using an official e-mail address,
-posting via an official social media account, or acting as an appointed
-representative at an online or offline event.
-
-## Enforcement
-
-Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported to the community leaders responsible for enforcement at
-rnd@avaiga.com.
-All complaints will be reviewed and investigated promptly and fairly.
-
-All community leaders are obligated to respect the privacy and security of the
-reporter of any incident.
-
-## Enforcement Guidelines
-
-Community leaders will follow these Community Impact Guidelines in determining
-the consequences for any action they deem in violation of this Code of Conduct:
-
-### 1. Correction
-
-**Community Impact**: Use of inappropriate language or other behavior deemed
-unprofessional or unwelcome in the community.
-
-**Consequence**: A private, written warning from community leaders, providing
-clarity around the nature of the violation and an explanation of why the
-behavior was inappropriate. A public apology may be requested.
-
-### 2. Warning
-
-**Community Impact**: A violation through a single incident or series
-of actions.
-
-**Consequence**: A warning with consequences for continued behavior. No
-interaction with the people involved, including unsolicited interaction with
-those enforcing the Code of Conduct, for a specified period of time. This
-includes avoiding interactions in community spaces as well as external channels
-like social media. Violating these terms may lead to a temporary or
-permanent ban.
-
-### 3. Temporary Ban
-
-**Community Impact**: A serious violation of community standards, including
-sustained inappropriate behavior.
-
-**Consequence**: A temporary ban from any sort of interaction or public
-communication with the community for a specified period of time. No public or
-private interaction with the people involved, including unsolicited interaction
-with those enforcing the Code of Conduct, is allowed during this period.
-Violating these terms may lead to a permanent ban.
-
-### 4. Permanent Ban
-
-**Community Impact**: Demonstrating a pattern of violation of community
-standards, including sustained inappropriate behavior, harassment of an
-individual, or aggression toward or disparagement of classes of individuals.
-
-**Consequence**: A permanent ban from any sort of public interaction within
-the community.
-
-## Attribution
-
-This Code of Conduct is adapted from the [Contributor Covenant][homepage],
-version 2.0, available at
-https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
-
-Community Impact Guidelines were inspired by [Mozilla's code of conduct
-enforcement ladder](https://github.com/mozilla/diversity).
-
-[homepage]: https://www.contributor-covenant.org
-
-For answers to common questions about this code of conduct, see the FAQ at
-https://www.contributor-covenant.org/faq. Translations are available at
-https://www.contributor-covenant.org/translations.
diff --git a/taipy/templates/CONTRIBUTING.md b/taipy/templates/CONTRIBUTING.md
deleted file mode 100644
index f4b1a68c87..0000000000
--- a/taipy/templates/CONTRIBUTING.md
+++ /dev/null
@@ -1,135 +0,0 @@
-# Contributions
-
-Thanks for your interest in helping improve Taipy! Contributions are welcome, and they are greatly appreciated!
-Every little help and credit will always be given.
-
-There are multiple ways to contribute to Taipy: code, but also reporting bugs, creating feature requests, helping
-other users in our forums, [stack**overflow**](https://stackoverflow.com/), etc.
-
-Today the only way to communicate with the Taipy team is by GitHub issues.
-
-## Never contributed on an open source project before ?
-
-Have a look on this [GitHub documentation](https://docs.github.com/en/get-started/quickstart/contributing-to-projects).
-
-## Report bugs
-
-Reporting bugs is through [GitHub issues](https://github.com/Avaiga/taipy/issues).
-
-Please report relevant information and preferably code that exhibits the problem. We provide templates to help you
-describe the issue.
-
-The Taipy team will analyse and try to reproduce the bug to provide feedback. If confirmed, we will add a priority
-to the issue and add it in our backlog. Feel free to propose a pull request to fix it.
-
-## Issue reporting, feedback, proposal, design or any other comment
-
-Any feedback or proposal is greatly appreciated! Do not hesitate to create an issue with the appropriate template on
-[GitHub](https://github.com/Avaiga/taipy/issues).
-
-The Taipy team will analyse your issue and return to you as soon as possible.
-
-## Improve Documentation
-
-Do not hesitate to create an issue or pull request directly on the
-[taipy-doc repository](https://github.com/Avaiga/taipy-doc).
-
-## Implement Features
-
-The Taipy team manages its backlog in private. Each issue that will be done during our current sprint is
-attached to the `current sprint`. Please, do not work on it, the Taipy team is on it.
-
-## Code organisation
-
-Taipy is organised in five main repositories:
-
-- [taipy-config](https://github.com/Avaiga/taipy-config).
-- [taipy-core](https://github.com/Avaiga/taipy-core).
-- [taipy-gui](https://github.com/Avaiga/taipy-gui).
-- [taipy-rest](https://github.com/Avaiga/taipy-rest).
-- [taipy](https://github.com/Avaiga/taipy) brings previous packages in a single one.
-
-## Coding style and best practices
-
-### Python
-
-Taipy's repositories follow the [PEP 8](https://www.python.org/dev/peps/pep-0008/) and
-[PEP 484](https://www.python.org/dev/peps/pep-0484/) coding convention.
-
-## TypeScript
-
-Taipy's repositories use the [ESLint](https://eslint.org/) and
-[TypeScript ESLint](https://github.com/typescript-eslint/typescript-eslint) plugin to ensure a common set of rules.
-
-### Git branches
-
-All new development happens in the `develop` branch. All pull requests should target that branch.
-We are following a strict branch naming convention based on the pattern: `/#[IssueSummary]`.
-
-Where:
-
-- `` would be one of:
- - feature: new feature implementation, or improvement of a feature.
- - bug: bug fix.
- - review: change provoked by review comment not immediately taken care of.
- - refactor: refactor of a piece of code.
- - doc: doc changes (complement or typo fixes…).
- - build: in relation with the build process.
-- `` is the processed issue identifier. The advantage of explicitly indicating the issue number is that in
- GitHub, a pull request page shows a direct link to the issue description.
-- `[IssueSummary]` is a short summary of the issue topic, not including spaces, using Camel case or lower-case,
- dash-separated words. This summary, with its dash (‘-’) symbol prefix, is optional.
-
-
-## Contribution workflow
-
-Find an issue without the label `current sprint` and add a comment on it to inform the community that you are
-working on it.
-
-1. Make your [own fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) of the repository
- target by the issue. Clone it on our local machine, then go inside the directory.
-
-2. We are working with [Pipenv](https://github.com/pypa/pipenv) for our virtualenv.
- Create a local env and install development package by running `pipenv install --dev`, then run tests with `pipenv
- run pytest` to verify your setup.
-
-3. For convention help, we provide a [pre-commit](https://pre-commit.com/hooks.html) file.
- This tool will run before each commit and will automatically reformat code or raise warnings and errors based on the
- code format or Python typing.
- You can install and setup it up by doing:
- ```bash
- pipenv install pre-commit
- pipenv run python -m pre-commit install
- ```
-
-4. Make the changes.
- You may want to also add your GitHub login as a new line of the `contributors.txt` file located at the root
- of this repository. We are using it to list our contributors in the Taipy documentation
- (see the "Contributing > Contributors" section) and thank them.
-
-5. Create a [pull request from your fork](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork).
- Keep your pull request as __draft__ until your work is finished.
- Do not hesitate to add a comment for help or questions.
- Before you submit a pull request for review from your forked repo, check that it meets these guidelines:
- - Include tests.
- - Code is [rebase](http://stackoverflow.com/a/7244456/1110993).
- - License is present.
- - pre-commit works - without mypy error.
- - GitHub's actions are passing.
-
-6. The taipy team will have a look at your Pull Request and will give feedback. If every requirement is valid, your
- work will be added in the next release, congratulation!
-
-
-## Dependency management
-
-Taipy comes with multiple optional packages. You can find the list directly in the product or Taipy's packages.
-The back-end Pipfile does not install by default optional packages due to `pyodbc` requiring a driver's manual
-installation. This is not the behaviour for the front-end that installs all optional packages through its Pipfile.
-
-If you are a contributor on Taipy, be careful with dependencies, do not forget to install or uninstall depending on
-your issue.
-
-If you need to add a new dependency to Taipy, do not forget to add it in the `Pipfile` and the `setup.py`.
-Keep in mind that dependency is a vector of attack. The Taipy team limits the usage of external dependencies at the
-minimum.
diff --git a/taipy/templates/README.md b/taipy/templates/README.md
index 3ba4da021c..33fa6b636d 100644
--- a/taipy/templates/README.md
+++ b/taipy/templates/README.md
@@ -46,12 +46,12 @@ working directory.
## Contributing
-Want to help build _Taipy_? Check out our [`CONTRIBUTING.md`](CONTRIBUTING.md) file.
+Want to help build *Taipy*? Check out our [`CONTRIBUTING.md`](../../CONTRIBUTING.md) file.
## Code of conduct
-Want to be part of the _Taipy_ community? Check out our
-[`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) file.
+Want to be part of the *Taipy* community? Check out our
+[`CODE_OF_CONDUCT.md`](../../CODE_OF_CONDUCT.md) file.
## Directory Structure
@@ -61,10 +61,8 @@ Want to be part of the _Taipy_ community? Check out our
- `{{cookiecutter.__root_folder_name}}/`: The root folder of the application created using this template.
- `hooks/`: Contains hooks to be executed before and after the application is created.
- `cookiecutter.json`: The configuration file for the template.
- - `CODE_OF_CONDUCT.md`: Code of conduct for members and contributors of _taipy-templates_.
- - `CONTRIBUTING.md`: Instructions to contribute to _taipy-templates_.
- `LICENSE`: The Apache 2.0 License.
- `README.md`: Current file.
- - `setup.py`: The setup script managing building, distributing, and installing _taipy-templates_.
+ - `setup.py`: The setup script managing building, distributing, and installing *taipy-templates*.
- `tests/`:
- `templates/`: Unit tests following the `taipy/templates/` structure.
diff --git a/taipy/templates/package_desc.md b/taipy/templates/package_desc.md
new file mode 100644
index 0000000000..819efe5170
--- /dev/null
+++ b/taipy/templates/package_desc.md
@@ -0,0 +1,61 @@
+# Taipy Templates
+
+## License
+
+Copyright 2021-2024 Avaiga Private Limited
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+except in compliance with the License. You may obtain a copy of the License at
+[http://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+Unless required by applicable law or agreed to in writing, software distributed under the
+License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+either express or implied. See the License for the specific language governing permissions
+and limitations under the License.
+
+## What is Taipy templates
+
+Taipy is a Python library for creating Business Applications. More information on our
+[website](https://www.taipy.io). Taipy is split into multiple repositories including *taipy-templates*
+to let users install the minimum they need.
+
+Taipy templates is a repository that contains templates and scaffoldings created and
+maintained by Taipy. It helps users getting started with a simple and ready-to-go application.
+
+To create a Taipy application using this template, first you need to install Taipy (> 2.2).
+Then from a terminal, run the following command.
+```bash
+taipy create
+```
+or
+```bash
+taipy create --template "default"
+```
+
+After providing necessary information, your new application is created in the current
+working directory.
+
+## Installation
+
+The latest stable version of *taipy-templates* is available through *pip*:
+```bash
+pip install taipy-templates
+```
+
+You can install the development version of *taipy-templates* with *pip* and *git* via the taipy repository:
+```bash
+pip install git+https://git@github.com/Avaiga/taipy
+```
+
+This command installs the development version of *taipy* package in the Python environment with all
+its dependencies, including the *taipy-templates* package.
+
+If you need the source code for *taipy-templates* on your system so you can see how things are done or
+maybe participate in the improvement of the packages, you can clone the GitHub repository:
+
+```bash
+git clone https://github.com/Avaiga/taipy.git
+```
+
+This creates the 'taipy' directory holding all the package's source code, and the 'taipy-templates'
+source code is in the 'taipy/templates' directory.
diff --git a/taipy/templates/setup.py b/taipy/templates/setup.py
index 5028d715de..58c794718a 100644
--- a/taipy/templates/setup.py
+++ b/taipy/templates/setup.py
@@ -9,15 +9,15 @@
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
-"""The setup script."""
+"""The setup script for taipy-templates package"""
import json
import os
+from pathlib import Path
from setuptools import find_namespace_packages, find_packages, setup
-with open("README.md", "rb") as readme_file:
- readme = readme_file.read().decode("UTF-8")
+package_desc = Path("package_desc.md").read_text("UTF-8")
version_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "version.json")
with open(version_path) as version_file:
@@ -33,6 +33,7 @@
author_email="dev@taipy.io",
python_requires=">=3.8",
classifiers=[
+ "Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Natural Language :: English",
@@ -42,10 +43,16 @@
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
+ "Topic :: Software Development",
+ "Topic :: Scientific/Engineering",
+ "Operating System :: Microsoft :: Windows",
+ "Operating System :: POSIX",
+ "Operating System :: Unix",
+ "Operating System :: MacOS",
],
description="An open-source package holding Taipy application templates.",
license="Apache License 2.0",
- long_description=readme,
+ long_description=package_desc,
long_description_content_type="text/markdown",
keywords="taipy-templates",
name="taipy-templates",
@@ -53,7 +60,15 @@
include_package_data=True,
data_files=[('version', ['version.json'])],
test_suite="tests",
- url="https://github.com/avaiga/taipy-templates",
version=version_string,
zip_safe=False,
+ project_urls={
+ "Homepage": "https://www.taipy.io",
+ "Documentation": "https://docs.taipy.io",
+ "Source": "https://github.com/Avaiga/taipy",
+ "Download": "https://pypi.org/project/taipy/#files",
+ "Tracker": "https://github.com/Avaiga/taipy/issues",
+ "Security": "https://github.com/Avaiga/taipy?tab=security-ov-file#readme",
+ f"Release notes": "https://docs.taipy.io/en/release-{version_string}/relnotes/",
+ },
)
diff --git a/tools/packages/taipy-config/setup.py b/tools/packages/taipy-config/setup.py
index f3dde84632..b638032ef9 100644
--- a/tools/packages/taipy-config/setup.py
+++ b/tools/packages/taipy-config/setup.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
# Copyright 2021-2024 Avaiga Private Limited
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
@@ -11,7 +9,8 @@
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
-"""The setup script."""
+"""The setup script for taipy-config package"""
+
import json
from pathlib import Path
@@ -19,7 +18,7 @@
root_folder = Path(__file__).parent
-readme = Path(root_folder / "README.md").read_text("UTF-8")
+package_desc = Path(root_folder / "package_desc.md").read_text("UTF-8")
version_path = "taipy/config/version.json"
@@ -40,6 +39,7 @@
author_email="dev@taipy.io",
python_requires=">=3.8",
classifiers=[
+ "Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Natural Language :: English",
@@ -49,10 +49,16 @@
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
+ "Topic :: Software Development",
+ "Topic :: Scientific/Engineering",
+ "Operating System :: Microsoft :: Windows",
+ "Operating System :: POSIX",
+ "Operating System :: Unix",
+ "Operating System :: MacOS",
],
description="A Taipy package dedicated to easily configure a Taipy application.",
install_requires=requirements,
- long_description=readme,
+ long_description=package_desc,
long_description_content_type="text/markdown",
include_package_data=True,
license="Apache License 2.0",
@@ -65,7 +71,15 @@
),
test_suite="tests",
tests_require=test_requirements,
- url="https://github.com/avaiga/taipy-config",
version=version_string,
zip_safe=False,
+ project_urls={
+ "Homepage": "https://www.taipy.io",
+ "Documentation": "https://docs.taipy.io",
+ "Source": "https://github.com/Avaiga/taipy",
+ "Download": "https://pypi.org/project/taipy/#files",
+ "Tracker": "https://github.com/Avaiga/taipy/issues",
+ "Security": "https://github.com/Avaiga/taipy?tab=security-ov-file#readme",
+ f"Release notes": "https://docs.taipy.io/en/release-{version_string}/relnotes/",
+ },
)
diff --git a/tools/packages/taipy-core/setup.py b/tools/packages/taipy-core/setup.py
index 65079f65d3..16a9f60b62 100644
--- a/tools/packages/taipy-core/setup.py
+++ b/tools/packages/taipy-core/setup.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
# Copyright 2021-2024 Avaiga Private Limited
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
@@ -11,16 +9,16 @@
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
-"""The setup script."""
-import json
+"""The setup script for taipy-core package"""
+import json
from pathlib import Path
from setuptools import find_packages, setup
root_folder = Path(__file__).parent
-readme = Path(root_folder / "README.md").read_text("UTF-8")
+package_desc = Path(root_folder / "package_desc.md").read_text("UTF-8")
version_path = "taipy/core/version.json"
@@ -48,6 +46,7 @@
author_email="dev@taipy.io",
python_requires=">=3.8",
classifiers=[
+ "Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Natural Language :: English",
@@ -57,10 +56,16 @@
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
+ "Topic :: Software Development",
+ "Topic :: Scientific/Engineering",
+ "Operating System :: Microsoft :: Windows",
+ "Operating System :: POSIX",
+ "Operating System :: Unix",
+ "Operating System :: MacOS",
],
description="A Python library to build powerful and customized data-driven back-end applications.",
install_requires=requirements,
- long_description=readme,
+ long_description=package_desc,
long_description_content_type="text/markdown",
license="Apache License 2.0",
keywords="taipy-core",
@@ -69,8 +74,16 @@
include_package_data=True,
test_suite="tests",
tests_require=test_requirements,
- url="https://github.com/avaiga/taipy-core",
version=version_string,
zip_safe=False,
extras_require=extras_require,
+ project_urls={
+ "Homepage": "https://www.taipy.io",
+ "Documentation": "https://docs.taipy.io",
+ "Source": "https://github.com/Avaiga/taipy",
+ "Download": "https://pypi.org/project/taipy/#files",
+ "Tracker": "https://github.com/Avaiga/taipy/issues",
+ "Security": "https://github.com/Avaiga/taipy?tab=security-ov-file#readme",
+ f"Release notes": "https://docs.taipy.io/en/release-{version_string}/relnotes/",
+ },
)
diff --git a/tools/packages/taipy-gui/setup.py b/tools/packages/taipy-gui/setup.py
index d9de825a7f..39a7649f9b 100644
--- a/tools/packages/taipy-gui/setup.py
+++ b/tools/packages/taipy-gui/setup.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
# Copyright 2021-2024 Avaiga Private Limited
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
@@ -11,7 +9,7 @@
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
-"""The setup script."""
+"""The setup script for taipy-gui package"""
import json
import os
@@ -24,7 +22,7 @@
root_folder = Path(__file__).parent
-readme = Path(root_folder / "README.md").read_text("UTF-8")
+package_desc = Path(root_folder / "package_desc.md").read_text("UTF-8")
version_path = os.path.join(root_folder, "taipy/gui/version.json")
@@ -78,6 +76,7 @@ def run(self):
author_email="dev@taipy.io",
python_requires=">=3.8",
classifiers=[
+ "Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Natural Language :: English",
@@ -87,9 +86,15 @@ def run(self):
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
+ "Topic :: Software Development",
+ "Topic :: Scientific/Engineering",
+ "Operating System :: Microsoft :: Windows",
+ "Operating System :: POSIX",
+ "Operating System :: Unix",
+ "Operating System :: MacOS",
],
description="Low-code library to create graphical user interfaces on the Web for your Python applications.",
- long_description=readme,
+ long_description=package_desc,
long_description_content_type="text/markdown",
install_requires=requirements,
license="Apache License 2.0",
@@ -99,9 +104,17 @@ def run(self):
packages=find_packages(where=root_folder, include=["taipy", "taipy.gui", "taipy.gui.*"]),
test_suite="tests",
tests_require=test_requirements,
- url="https://github.com/avaiga/taipy-gui",
version=version_string,
zip_safe=False,
extras_require=extras_require,
cmdclass={"build_py": NPMInstall},
+ project_urls={
+ "Homepage": "https://www.taipy.io",
+ "Documentation": "https://docs.taipy.io",
+ "Source": "https://github.com/Avaiga/taipy",
+ "Download": "https://pypi.org/project/taipy/#files",
+ "Tracker": "https://github.com/Avaiga/taipy/issues",
+ "Security": "https://github.com/Avaiga/taipy?tab=security-ov-file#readme",
+ f"Release notes": "https://docs.taipy.io/en/release-{version_string}/relnotes/",
+ },
)
diff --git a/tools/packages/taipy-rest/setup.py b/tools/packages/taipy-rest/setup.py
index 24fd4b052a..f48fb5d63f 100644
--- a/tools/packages/taipy-rest/setup.py
+++ b/tools/packages/taipy-rest/setup.py
@@ -8,15 +8,17 @@
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
-import json
+"""The setup script for taipy-rest package"""
+
+import json
from pathlib import Path
from setuptools import find_packages, setup
root_folder = Path(__file__).parent
-readme = Path(root_folder / "README.md").read_text("UTF-8")
+package_desc = Path(root_folder / "package_desc.md").read_text("UTF-8")
version_path = "taipy/rest/version.json"
@@ -39,11 +41,12 @@
author_email="dev@taipy.io",
packages=find_packages(where=root_folder, include=["taipy", "taipy.rest", "taipy.rest.*"]),
include_package_data=True,
- long_description=readme,
+ long_description=package_desc,
long_description_content_type="text/markdown",
description="Library to expose taipy-core REST APIs.",
license="Apache License 2.0",
classifiers=[
+ "Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Natural Language :: English",
@@ -53,6 +56,21 @@
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
+ "Topic :: Software Development",
+ "Topic :: Scientific/Engineering",
+ "Operating System :: Microsoft :: Windows",
+ "Operating System :: POSIX",
+ "Operating System :: Unix",
+ "Operating System :: MacOS",
],
install_requires=requirements,
+ project_urls={
+ "Homepage": "https://www.taipy.io",
+ "Documentation": "https://docs.taipy.io",
+ "Source": "https://github.com/Avaiga/taipy",
+ "Download": "https://pypi.org/project/taipy/#files",
+ "Tracker": "https://github.com/Avaiga/taipy/issues",
+ "Security": "https://github.com/Avaiga/taipy?tab=security-ov-file#readme",
+ f"Release notes": "https://docs.taipy.io/en/release-{version_string}/relnotes/",
+ },
)
diff --git a/tools/packages/taipy-templates/setup.py b/tools/packages/taipy-templates/setup.py
index 9f9a64b26f..3335d6a14e 100644
--- a/tools/packages/taipy-templates/setup.py
+++ b/tools/packages/taipy-templates/setup.py
@@ -12,14 +12,13 @@
"""The setup script."""
import json
-
from pathlib import Path
from setuptools import find_packages, setup
root_folder = Path(__file__).parent
-readme = Path(root_folder / "README.md").read_text("UTF-8")
+package_desc = Path(root_folder / "package_desc.md").read_text("UTF-8")
version_path = "taipy/templates/version.json"
@@ -40,6 +39,7 @@
author_email="dev@taipy.io",
python_requires=">=3.8",
classifiers=[
+ "Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Natural Language :: English",
@@ -49,6 +49,12 @@
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
+ "Topic :: Software Development",
+ "Topic :: Scientific/Engineering",
+ "Operating System :: Microsoft :: Windows",
+ "Operating System :: POSIX",
+ "Operating System :: Unix",
+ "Operating System :: MacOS",
],
description="An open-source package holding Taipy application templates.",
license="Apache License 2.0",
@@ -60,7 +66,15 @@
packages=find_packages(where=root_folder, include=["taipy"]),
include_package_data=True,
test_suite="tests",
- url="https://github.com/avaiga/taipy-templates",
version=version_string,
zip_safe=False,
+ project_urls={
+ "Homepage": "https://www.taipy.io",
+ "Documentation": "https://docs.taipy.io",
+ "Source": "https://github.com/Avaiga/taipy",
+ "Download": "https://pypi.org/project/taipy/#files",
+ "Tracker": "https://github.com/Avaiga/taipy/issues",
+ "Security": "https://github.com/Avaiga/taipy?tab=security-ov-file#readme",
+ f"Release notes": "https://docs.taipy.io/en/release-{version_string}/relnotes/",
+ },
)
diff --git a/tools/packages/taipy/setup.py b/tools/packages/taipy/setup.py
index 518f47ab54..e160b57535 100644
--- a/tools/packages/taipy/setup.py
+++ b/tools/packages/taipy/setup.py
@@ -9,8 +9,7 @@
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
-"""The setup script."""
-
+"""The setup script for taipy package"""
import json
import platform
@@ -22,7 +21,7 @@
root_folder = Path(__file__).parent
-readme = (root_folder / "README.md").read_text("UTF-8")
+package_desc = (root_folder / "package_desc.md").read_text("UTF-8")
with open(root_folder / "taipy" / "version.json") as version_file:
version = json.load(version_file)
@@ -62,6 +61,7 @@ def run(self):
author_email="dev@taipy.io",
python_requires=">=3.8",
classifiers=[
+ "Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Natural Language :: English",
@@ -71,6 +71,12 @@ def run(self):
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
+ "Topic :: Software Development",
+ "Topic :: Scientific/Engineering",
+ "Operating System :: Microsoft :: Windows",
+ "Operating System :: POSIX",
+ "Operating System :: Unix",
+ "Operating System :: MacOS",
],
description="A 360° open-source platform from Python pilots to production-ready web apps.",
install_requires=requirements,
@@ -80,16 +86,24 @@ def run(self):
]
},
license="Apache License 2.0",
- long_description=readme,
+ long_description=package_desc,
long_description_content_type="text/markdown",
keywords="taipy",
name="taipy",
packages=find_packages(include=["taipy", "taipy._cli", "taipy._cli.*", "taipy.gui_core"]),
include_package_data=True,
test_suite="tests",
- url="https://github.com/avaiga/taipy",
version=version_string,
zip_safe=False,
extras_require=extras_require,
cmdclass={"build_py": NPMInstall},
+ project_urls={
+ "Homepage": "https://www.taipy.io",
+ "Documentation": "https://docs.taipy.io",
+ "Source": "https://github.com/Avaiga/taipy",
+ "Download": "https://pypi.org/project/taipy/#files",
+ "Tracker": "https://github.com/Avaiga/taipy/issues",
+ "Security": "https://github.com/Avaiga/taipy?tab=security-ov-file#readme",
+ f"Release notes": "https://docs.taipy.io/en/release-{version_string}/relnotes/",
+ },
)