From c71eee952e88d18db21a33ff701915bc30c3648d Mon Sep 17 00:00:00 2001
From: rasswanth-s <43314053+rasswanth-s@users.noreply.github.com>
Date: Thu, 9 Nov 2023 13:15:54 +0530
Subject: [PATCH 2/3] added a new script to convert github readme to pypi
readme
---
packages/syft/PYPI.md | 403 ++++++++++++++++++++++++++++++
packages/syft/setup.cfg | 2 +-
scripts/convert_to_pypi_readme.py | 90 +++++++
3 files changed, 494 insertions(+), 1 deletion(-)
create mode 100644 packages/syft/PYPI.md
create mode 100644 scripts/convert_to_pypi_readme.py
diff --git a/packages/syft/PYPI.md b/packages/syft/PYPI.md
new file mode 100644
index 00000000000..434cfd354f5
--- /dev/null
+++ b/packages/syft/PYPI.md
@@ -0,0 +1,403 @@
+
+
+
+
+
+Perform data science on `data` that remains in `someone else's` server
+
+# Quickstart
+
+β `Linux` β `macOS` β `Windows` β `Docker` β `Podman` β `Kubernetes`
+
+## Install Client
+
+```bash
+$ pip install -U syft
+```
+
+## Launch Server
+
+```python
+# from Jupyter / Python
+import syft as sy
+sy.requires(">=0.8.1,<0.8.2")
+node = sy.orchestra.launch(name="my-domain", port=8080, dev_mode=True, reset=True)
+```
+
+```bash
+# or from the command line
+$ syft launch --name=my-domain --port=8080 --reset=True
+
+Starting syft-node server on 0.0.0.0:8080
+```
+
+## Launch Client
+
+```python
+import syft as sy
+sy.requires(">=0.8.1,<0.8.2")
+domain_client = sy.login(port=8080, email="info@openmined.org", password="changethis")
+```
+
+## PySyft in 10 minutes
+
+π API Example Notebooks
+
+- 00-load-data.ipynb
+- 01-submit-code.ipynb
+- 02-review-code-and-approve.ipynb
+- 03-data-scientist-download-result.ipynb
+- 04-jax-example.ipynb
+- 05-custom-policy.ipynb
+- 06-multiple-code-requests.ipynb
+- 07-domain-register-control-flow.ipynb
+
+## Deploy Kubernetes Helm Chart
+
+**Note**: Assuming we have a Kubernetes cluster already setup.
+
+#### 1. Add and update Helm repo for Syft
+
+```sh
+$ helm repo add openmined https://openmined.github.io/PySyft/helm
+$ helm repo update openmined
+```
+
+#### 2. Search for available Syft versions
+
+```sh
+$ helm search repo openmined/syft --versions --devel
+```
+
+#### 3. Set your preferred Syft Chart version
+
+```sh
+SYFT_VERSION=""
+```
+
+#### 4. Provisioning Helm Charts
+
+```sh
+$ helm install my-domain openmined/syft --version $SYFT_VERSION --namespace syft --create-namespace --set ingress.ingressClass=traefik
+```
+
+### Azure or GCP Ingress
+
+```
+$ helm install ... --set ingress.ingressClass="azure/application-gateway"
+$ helm install ... --set ingress.ingressClass="gce"
+```
+
+## Deploy to a Container Engine or Cloud
+
+1. Install our handy π΅ cli tool which makes deploying a Domain or Gateway server to Docker or VM a one-liner:
+ `pip install -U hagrid`
+
+2. Then run our interactive jupyter Install π§π½ββοΈ WizardBETA:
+ `hagrid quickstart`
+
+3. In the tutorial you will learn how to install and deploy:
+ `PySyft` = our `numpy`-like π Python library for computing on `private data` in someone else's `Domain`
+
+ `PyGrid` = our π³ `docker` / π§ `vm` `Domain` & `Gateway` Servers where `private data` lives
+
+## Docs and Support
+
+- π Docs
+- `#support` on Slack
+
+# Install Notes
+
+- HAGrid 0.3 Requires: π `python` π `git` - Run: `pip install -U hagrid`
+- Interactive Install π§π½ββοΈ WizardBETA Requires π΅ `hagrid`: - Run: `hagrid quickstart`
+- PySyft 0.8.1 Requires: π `python 3.9 - 3.11` - Run: `pip install -U syft`
+- PyGrid Requires: π³ `docker`, 𦦠`podman` or βΈοΈ `kubernetes` - Run: `hagrid launch ...`
+
+# Versions
+
+`0.9.0` - Coming soon...
+`0.8.2` (Beta) - `dev` branch ππ½ API - Coming soon...
+`0.8.1` (Stable) - API
+
+Deprecated:
+
+- `0.8.0` - API
+- `0.7.0` - Course 3 Updated
+- `0.6.0` - Course 3
+- `0.5.1` - Course 2 + M1 Hotfix
+- `0.2.0` - `0.5.0`
+
+PySyft and PyGrid use the same `version` and its best to match them up where possible. We release weekly betas which can be used in each context:
+
+PySyft (Stable): `pip install -U syft`
+PyGrid (Stable) `hagrid launch ... tag=latest`
+
+PySyft (Beta): `pip install -U syft --pre`
+PyGrid (Beta): `hagrid launch ... tag=beta`
+
+HAGrid is a cli / deployment tool so the latest version of `hagrid` is usually the best.
+
+# What is Syft?
+
+
+
+`Syft` is OpenMined's `open source` stack that provides `secure` and `private` Data Science in Python. Syft decouples `private data` from model training, using techniques like [Federated Learning](https://ai.googleblog.com/2017/04/federated-learning-collaborative.html), [Differential Privacy](https://en.wikipedia.org/wiki/Differential_privacy), and [Encrypted Computation](https://en.wikipedia.org/wiki/Homomorphic_encryption). This is done with a `numpy`-like interface and integration with `Deep Learning` frameworks, so that you as a `Data Scientist` can maintain your current workflow while using these new `privacy-enhancing techniques`.
+
+### Why should I use Syft?
+
+`Syft` allows a `Data Scientist` to ask `questions` about a `dataset` and, within `privacy limits` set by the `data owner`, get `answers` to those `questions`, all without obtaining a `copy` of the data itself. We call this process `Remote Data Science`. It means in a wide variety of `domains` across society, the current `risks` of sharing information (`copying` data) with someone such as, privacy invasion, IP theft and blackmail will no longer prevent the vast `benefits` such as innovation, insights and scientific discovery which secure access will provide.
+
+No more cold calls to get `access` to a dataset. No more weeks of `wait times` to get a `result` on your `query`. It also means `1000x more data` in every domain. PySyft opens the doors to a streamlined Data Scientist `workflow`, all with the individual's `privacy` at its heart.
+
+
+
+# Terminology
+
+
+
+
+Provide `datasets` which they would like to make available for `study` by an `outside party` they may or may not `fully trust` has good intentions.
+
+
+
+
+
+Are end `users` who desire to perform `computations` or `answer` a specific `question` using one or more data owners' `datasets`.
+
+
+
+
+
+
+
π° Domain Server
+
+
+
+
π Gateway Server
+
+
+
+
+
+
+Manages the `remote study` of the data by a `Data Scientist` and allows the `Data Owner` to manage the `data` and control the `privacy guarantees` of the subjects under study. It also acts as a `gatekeeper` for the `Data Scientist's` access to the data to compute and experiment with the results.
+
+
+
+
+
+Provides services to a group of `Data Owners` and `Data Scientists`, such as dataset `search` and bulk `project approval` (legal / technical) to participate in a project. A gateway server acts as a bridge between it's members (`Domains`) and their subscribers (`Data Scientists`) and can provide access to a collection of `domains` at once.
+
+# Contributors
+
+OpenMined and Syft appreciates all contributors, if you would like to fix a bug or suggest a new feature, please see our [guidelines](https://openmined.github.io/PySyft/developer_guide/index.html).
+
+
+
+# Supporters
+
+
+
+# Open Collective
+
+`OpenMined` is a fiscally sponsored `501(c)(3)` in the USA. We are funded by our generous supporters on Open Collective.
+
+
+
+# Disclaimer
+
+Syft is under active development and is not yet ready for pilots on private data without our assistance. As early access participants, please contact us via [Slack](https://slack.openmined.org/) or email if you would like to ask a question or have a use case that you would like to discuss.
+
+# License
+
+[Apache License 2.0](LICENSE)
+Person icons created by Freepik - Flaticon
+
+
diff --git a/packages/syft/setup.cfg b/packages/syft/setup.cfg
index 4b0f8fe459f..c267a7e302e 100644
--- a/packages/syft/setup.cfg
+++ b/packages/syft/setup.cfg
@@ -5,7 +5,7 @@ description = Perform numpy-like analysis on data that remains in someone elses
author = OpenMined
author_email = info@openmined.org
license = Apache-2.0
-long_description = file: README.md
+long_description = file: PYPI.md
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
url = https://openmined.github.io/PySyft/
project_urls =
diff --git a/scripts/convert_to_pypi_readme.py b/scripts/convert_to_pypi_readme.py
new file mode 100644
index 00000000000..70d53ad3ae5
--- /dev/null
+++ b/scripts/convert_to_pypi_readme.py
@@ -0,0 +1,90 @@
+# stdlib
+import argparse
+from pathlib import Path
+import re
+
+
+def convert_github_markdown_to_pypi(input_file, output_file, repo, version):
+ with open(input_file, encoding="utf-8") as file:
+ content = file.read()
+
+ # Regular expression pattern to match