Metadata-Version: 2.1
Name: syft
Version: 0.9.1
Summary: Perform numpy-like analysis on data that remains in someone elses server
Home-page: https://docs.openmined.org
Author: OpenMined
Author-email: info@openmined.org
License: Apache-2.0
Project-URL: Source, https://github.com/OpenMined/PySyft
Project-URL: Tracker, https://github.com/OpenMined/PySyft/issues
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
License-File: LICENSE
Requires-Dist: setuptools
Requires-Dist: bcrypt==4.1.2
Requires-Dist: boto3==1.34.56
Requires-Dist: forbiddenfruit==0.1.4
Requires-Dist: packaging>=23.0
Requires-Dist: pyarrow==15.0.0
Requires-Dist: pycapnp==2.0.0
Requires-Dist: pydantic[email]==2.6.0
Requires-Dist: pydantic-settings==2.2.1
Requires-Dist: pymongo==4.6.3
Requires-Dist: pynacl==1.5.0
Requires-Dist: pyzmq<=25.1.1,>=23.2.1
Requires-Dist: requests==2.32.3
Requires-Dist: RestrictedPython==7.0
Requires-Dist: tqdm==4.66.4
Requires-Dist: typeguard==4.1.5
Requires-Dist: typing_extensions==4.12.0
Requires-Dist: sherlock[filelock]==0.4.1
Requires-Dist: uvicorn[standard]==0.30.0
Requires-Dist: markdown==3.5.2
Requires-Dist: fastapi==0.111.0
Requires-Dist: psutil==6.0.0
Requires-Dist: itables==1.7.1
Requires-Dist: argon2-cffi==23.1.0
Requires-Dist: matplotlib<3.9.1,>=3.7.1
Requires-Dist: numpy<=1.24.4,>=1.23.5; python_version < "3.12"
Requires-Dist: numpy<1.27,>=1.26.4; python_version >= "3.12"
Requires-Dist: pandas==2.2.2
Requires-Dist: docker==7.1.0
Requires-Dist: kr8s==0.13.5
Requires-Dist: PyYAML==6.0.1
Requires-Dist: azure-storage-blob==12.19.1
Requires-Dist: ipywidgets==8.1.2
Requires-Dist: tomli==2.0.1
Requires-Dist: tomli_w==1.0.0
Requires-Dist: rich==13.7.1
Requires-Dist: jinja2==3.1.4
Requires-Dist: tenacity==8.3.0
Requires-Dist: nh3==0.2.17
Requires-Dist: ipython<8.27.0
Requires-Dist: dynaconf==3.2.6
Provides-Extra: data-science
Requires-Dist: transformers==4.41.2; extra == "data-science"
Requires-Dist: opendp==0.9.2; extra == "data-science"
Requires-Dist: evaluate==0.4.2; extra == "data-science"
Requires-Dist: recordlinkage==0.16; extra == "data-science"
Requires-Dist: torch==2.2.2; extra == "data-science"
Provides-Extra: dev
Requires-Dist: pytest<8; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: pytest-xdist[psutil]; extra == "dev"
Requires-Dist: pytest-parallel; extra == "dev"
Requires-Dist: pytest-randomly; extra == "dev"
Requires-Dist: pytest-sugar; extra == "dev"
Requires-Dist: pytest-lazy-fixture; extra == "dev"
Requires-Dist: pytest-rerunfailures; extra == "dev"
Requires-Dist: coverage; extra == "dev"
Requires-Dist: faker; extra == "dev"
Requires-Dist: distro; extra == "dev"
Requires-Dist: dynaconf; extra == "dev"
Requires-Dist: opentelemetry-api==1.27.0; extra == "dev"
Requires-Dist: opentelemetry-sdk==1.27.0; extra == "dev"
Requires-Dist: opentelemetry-exporter-otlp==1.27.0; extra == "dev"
Requires-Dist: opentelemetry-instrumentation==0.48b0; extra == "dev"
Requires-Dist: opentelemetry-instrumentation-requests==0.48b0; extra == "dev"
Requires-Dist: opentelemetry-instrumentation-fastapi==0.48b0; extra == "dev"
Requires-Dist: opentelemetry-instrumentation-pymongo==0.48b0; extra == "dev"
Requires-Dist: opentelemetry-instrumentation-botocore==0.48b0; extra == "dev"
Requires-Dist: opentelemetry-instrumentation-logging==0.48b0; extra == "dev"
Requires-Dist: bandit==1.7.8; extra == "dev"
Requires-Dist: debugpy==1.8.2; extra == "dev"
Requires-Dist: importlib-metadata==7.1.0; extra == "dev"
Requires-Dist: isort==5.13.2; extra == "dev"
Requires-Dist: mypy==1.10.0; extra == "dev"
Requires-Dist: pre-commit==3.7.1; extra == "dev"
Requires-Dist: ruff==0.4.7; extra == "dev"
Requires-Dist: safety>=2.4.0b2; extra == "dev"
Requires-Dist: aiosmtpd==1.4.6; extra == "dev"
Provides-Extra: telemetry
Requires-Dist: opentelemetry-api==1.27.0; extra == "telemetry"
Requires-Dist: opentelemetry-sdk==1.27.0; extra == "telemetry"
Requires-Dist: opentelemetry-exporter-otlp==1.27.0; extra == "telemetry"
Requires-Dist: opentelemetry-instrumentation==0.48b0; extra == "telemetry"
Requires-Dist: opentelemetry-instrumentation-requests==0.48b0; extra == "telemetry"
Requires-Dist: opentelemetry-instrumentation-fastapi==0.48b0; extra == "telemetry"
Requires-Dist: opentelemetry-instrumentation-pymongo==0.48b0; extra == "telemetry"
Requires-Dist: opentelemetry-instrumentation-botocore==0.48b0; extra == "telemetry"
Requires-Dist: opentelemetry-instrumentation-logging==0.48b0; extra == "telemetry"
Provides-Extra: test-plugins
Requires-Dist: pytest<8; extra == "test-plugins"
Requires-Dist: pytest-cov; extra == "test-plugins"
Requires-Dist: pytest-xdist[psutil]; extra == "test-plugins"
Requires-Dist: pytest-parallel; extra == "test-plugins"
Requires-Dist: pytest-randomly; extra == "test-plugins"
Requires-Dist: pytest-sugar; extra == "test-plugins"
Requires-Dist: pytest-lazy-fixture; extra == "test-plugins"
Requires-Dist: pytest-rerunfailures; extra == "test-plugins"
Requires-Dist: coverage; extra == "test-plugins"
Requires-Dist: faker; extra == "test-plugins"
Requires-Dist: distro; extra == "test-plugins"
Requires-Dist: dynaconf; extra == "test-plugins"

<div align="left"> <a href="https://pypi.org/project/syft/"><img src="https://static.pepy.tech/badge/pysyft" /></a> <a href="https://pypi.org/project/syft/"><img src="https://badge.fury.io/py/syft.svg" /></a> <a href="https://hub.docker.com/u/openmined"><img src="https://img.shields.io/badge/docker-images-blue?logo=docker" /></a> <a href="https://github.com/OpenMined/PySyft/actions/workflows/nightlies.yml"><img src="https://github.com/OpenMined/PySyft/actions/workflows/nightlies.yml/badge.svg?branch=dev" /></a> <a href="https://join.slack.com/t/openmined/shared_invite/zt-2hxwk07i9-HO7u5C7XOgou4Z62VU78zA/"><img src="https://img.shields.io/badge/chat-on%20slack-purple?logo=slack" /></a> <a href="https://docs.openmined.org/en/latest/index.html"><img src="https://img.shields.io/badge/read-docs-yellow?logo=mdbook" /></a>
<br /><br /></div>

<img alt="Syft Logo" src="https://raw.githubusercontent.com/OpenMined/PySyft/0.9.1/docs/img/Syft-Logo.svg" width="200px" />

<h3> Data Science on data you are not allowed to see</h3>

PySyft enables a new way to do data science, where you can use non-public information, without seeing nor obtaining a copy of the data itself. All you need is to connect to a <a href="https://docs.openmined.org/en/latest/components/datasite-server.html">Datasite</a>!

Datasites are like websites, but for data. Designed with the principles of <a href="https://arxiv.org/abs/2012.08347">structured transparency</a>, they enable data owners to control how their data is protected and data scientists to use data without obtaining a copy.

PySyft supports any statistical analysis or machine learning, offering support for directly running Python code - even using third-party Python libraries.

<h4> Supported on:</h4>

✅ Linux
✅ macOS
✅ Windows
✅ Docker
✅ Kubernetes

# Quickstart

Try out your <a href="https://docs.openmined.org/en/latest/index.html">first query against a live demo Datasite! </a>

## Install Client

```bash
pip install -U "syft[data_science]"
```

More instructions are available <a href="https://docs.openmined.org/en/latest/quick-install.html">here</a>.

## Launch Server

Launch <a href="https://docs.openmined.org/en/latest/deployment/deployment-doc-1-2-intro-req.html">a development server </a> directly in your Jupyter Notebook:

```python
import syft as sy

sy.requires(">=0.9.1,<0.9.2")

server = sy.orchestra.launch(
    name="my-datasite",
    port=8080,
    create_producer=True,
    n_consumers=1,
    dev_mode=False,
    reset=True, # resets database
)
```

or from the command line:

```bash
$ syft launch --name=my-datasite --port=8080 --reset=True

Starting syft-datasite server on 0.0.0.0:8080
```

Datasite servers can be deployed as a single container using Docker or directly in Kubernetes. Check out our <a href="https://docs.openmined.org/en/latest/deployment/deployment-doc-1-2-intro-req.html">deployment guide.</a>

## Launch Client

Main way to use a Datasite is via our Syft client, in a Jupyter Notebook. Check out our <a href="https://docs.openmined.org/en/latest/components/syft-client.html"> PySyft client guide</a>:

```python
import syft as sy

sy.requires(">=0.9.1,<0.9.2")

datasite_client = sy.login(
    port=8080,
    email="info@openmined.org",
    password="changethis"
)
```

## PySyft - Getting started 📝

Learn about PySyft via our getting started guide:

- <a href="https://docs.openmined.org/en/latest/getting-started/introduction.html">PySyft from the ground up</a>
- <a href="https://docs.openmined.org/en/latest/getting-started/part1-dataset-and-assets.html"> Part 1: Datasets & Assets</a>
- <a href="https://docs.openmined.org/en/latest/getting-started/part2-datasite-access.html"> Part 2: Client and Datasite Access</a>
- <a href="https://docs.openmined.org/en/latest/getting-started/part3-research-study.html"> Part 3: Propose the research study</a>
- <a href="https://docs.openmined.org/en/latest/getting-started/part4-review-code-request.html"> Part 4: Review Code Requests</a>
- <a href="https://docs.openmined.org/en/latest/getting-started/part5-retrieving-results.html"> Part 5: Retrieving Results</a>

# PySyft In-depth

📚 Check out <a href="https://docs.openmined.org/en/latest/index.html">our docs website</a>.

Quick PySyft components links:

- <a href="https://docs.openmined.org/en/latest/components/datasite-server.html">DataSite Server</a>

- <a href="https://docs.openmined.org/en/latest//components/syft-client.html">Syft Client</a>

- <a href="https://docs.openmined.org/en/latest/components/datasets.html">Datasets API (`.datasets`)</a>

- <a href="https://docs.openmined.org/en/latest/components/users-api.html">Users API (`.users`)</a>

<!-- - <a href="https://docs.openmined.org/en/latest/components/projects-api.html">Projects API (`.projects`)</a> -->

- <a href="https://docs.openmined.org/en/latest/components/requests-api.html">Request API (`.requests`)</a>

- <a href="https://docs.openmined.org/en/latest/components/code-api.html">Code API (`.code`)</a>

- <a href="https://docs.openmined.org/en/latest/components/syft-policies.html">Syft Policies API (`.policy`)</a>

- <a href="https://docs.openmined.org/en/latest/components/settings-api.html">Settings API (`.settings`)</a>

- <a href="https://docs.openmined.org/en/latest/components/notifications.html">Notifications API (`.notifications`)</a>

- <a href="https://docs.openmined.org/en/latest/components/syncing-api.html">Sync API (`.sync`)</a>

## Why use PySyft?

In a variety of domains across society, data owners have **valid concerns about the risks associated with sharing their data**, such as legal risks, privacy invasion (_misuing the data_), or intellectual property (_copying and redistributing it_).

Datasites enable data scientists to **answer questions** without even seeing or acquiring a copy of the data, **within the data owners's definition of acceptable use**. We call this process <b> Remote Data Science</b>.

This means that the **current risks** of sharing information with someone will **no longer prevent** the vast benefits such as innovation, insights and scientific discovery. With each Datasite, data owners are able to enable `1000x more accesible data` in each scientific field and lead, together with data scientists, breakthrough innovation.

Learn more about our work on <a href="https://openmined.org/">our website</a>.

## Support

For questions about PySyft, reach out via `#support` on <a href="https://slack.openmined.org/">Slack</a>.

## Syft Versions

:exclamation: PySyft and Syft Server must use the same `version`.

**Latest Stable**

- `0.9.1` (Stable) - <a href="https://docs.openmined.org/en/latest/index.html">Docs</a>
- Install PySyft (Stable): `pip install -U syft`

**Latest Beta**

- `0.9.2` (Beta) - `dev` branch 👈🏽
- Install PySyft (Beta): `pip install -U syft --pre`

Find more about previous <a href="https://github.com/OpenMined/PySyft/tree/0.9.1/./releases.md">releases here</a>.

# Community

Supported by the OpenMined Foundation, the OpenMined Community is an online network of over 17,000 technologists, researchers, and industry professionals keen to _unlock 1000x more data in every scientific field and industry_.

<a href="https://join.slack.com/t/openmined/shared_invite/zt-2hxwk07i9-HO7u5C7XOgou4Z62VU78zA"><img width=150px src="https://img.shields.io/badge/Join_us-%20slack-purple?logo=slack" /></a>

# Courses

<table border="5" bordercolor="grey">
<tr>
<th align="center">
<img width="200" height="1">
<div align="center">
<a href="https://courses.openmined.org/courses/our-privacy-opportunity"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.9.1/docs/img/course_privacy.png" alt="" width="100%" align="center" /></a>
</th>
<th align="center">
<img width="200" height="1">
<div align="center">
<a href="https://courses.openmined.org/courses/foundations-of-private-computation"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.9.1/docs/img/course_foundations.png" alt="" width="100%" align="center" /></a>
</div>
</th>
<th align="center">
<img width="200" height="1">
<div align="center">
<a href="https://courses.openmined.org/courses/introduction-to-remote-data-science"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.9.1/docs/img/course_introduction.png" alt="" width="100%" align="center"></a>
</div>
</th>
</tr>
</table>

# Contributors

OpenMined and Syft appreciates all contributors, if you would like to fix a bug or suggest a new feature, please reach out via <a href="https://github.com/OpenMined/PySyft/issues">Github</a> or <a href="https://join.slack.com/t/openmined/shared_invite/zt-2hxwk07i9-HO7u5C7XOgou4Z62VU78zA/">Slack</a>!

<img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.9.1/docs/img/contributors_light.jpg" alt="Contributors" width="100%" />

# About OpenMined

OpenMined is a non-profit foundation creating technology infrastructure that helps researchers get answers from data without needing a copy or direct access. Our community of technologists is building Syft.

<a href="https://donate.stripe.com/fZe03H0aLdAO59e9AA
"><img width=200px src="https://img.shields.io/badge/Donate_to-OpenMined-yellow?logo=stripe" /></a>

# Supporters

<table border="0">
<tr>
<th align="center">
<a href="https://sloan.org/"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.9.1/docs/img/logo_sloan.png" /></a>
</th>
<th align="center">
<a href="https://opensource.fb.com/"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.9.1/docs/img/logo_meta.png" /></a>
</th>
<th align="center">
<a href="https://pytorch.org/"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.9.1/docs/img/logo_torch.png" /></a>
</th>
<th align="center">
<a href="https://www.dpmc.govt.nz/">
<img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.9.1/docs/img/logo_nz_light.png" />
</a>
</th>
<th align="center">
<a href="https://twitter.com/"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.9.1/docs/img/logo_twitter.png" /></a>
</th>
<th align="center">
<a href="https://google.com/"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.9.1/docs/img/logo_google.png" /></a>
</th>
<th align="center">
<a href="https://microsoft.com/"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.9.1/docs/img/logo_microsoft.png" /></a>
</th>
<th align="center">
<a href="https://omidyar.com/"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.9.1/docs/img/logo_on.png" /></a>
</th>
<th align="center">
<a href="https://www.udacity.com/"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.9.1/docs/img/logo_udacity.png" /></a>
</th>
<th align="center">
<a href="https://www.centerfordigitalhealthinnovation.org/">

<img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.9.1/docs/img/logo_cdhi_light.png" />

</a>
</th>
<th align="center">
<a href="https://arkhn.org/">
<img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.9.1/docs/img/logo_arkhn_light.png" />
</a>
</th>
</tr>
</table>

# License

[Apache License 2.0](LICENSE)<br />
<a href="https://www.flaticon.com/free-icons/person" title="person icons">Person icons created by Freepik - Flaticon</a>

<!-- 🥇 -->
