From 0990b5b1bd162d8c26fc7ac07ab44bcf8865bf66 Mon Sep 17 00:00:00 2001 From: Ricardo Pereira Date: Mon, 27 Mar 2023 14:28:45 +0100 Subject: [PATCH] feat: add privacy level enum [SD-781] (#25) * feat: add privacy level enum * fix: lint error * feat: move privacy level enum * feat: add documentation * feat: move privacy level enum to new data science package --- src/datascience/VERSION | 1 + src/datascience/setup.py | 25 +++++++++++++++++++ src/datascience/ydata/__init__.py | 1 + src/datascience/ydata/datascience/__init__.py | 0 .../ydata/datascience/common/__init__.py | 6 +++++ .../ydata/datascience/common/privacy.py | 20 +++++++++++++++ 6 files changed, 53 insertions(+) create mode 100644 src/datascience/VERSION create mode 100644 src/datascience/setup.py create mode 100644 src/datascience/ydata/__init__.py create mode 100644 src/datascience/ydata/datascience/__init__.py create mode 100644 src/datascience/ydata/datascience/common/__init__.py create mode 100644 src/datascience/ydata/datascience/common/privacy.py diff --git a/src/datascience/VERSION b/src/datascience/VERSION new file mode 100644 index 0000000..77d6f4c --- /dev/null +++ b/src/datascience/VERSION @@ -0,0 +1 @@ +0.0.0 diff --git a/src/datascience/setup.py b/src/datascience/setup.py new file mode 100644 index 0000000..eb422bb --- /dev/null +++ b/src/datascience/setup.py @@ -0,0 +1,25 @@ +from pathlib import Path +from setuptools import setup, find_packages + +here = Path(__file__).parent.resolve() +root = here.parent.parent.resolve() + +long_description = (root / 'README.md').read_text(encoding='utf-8') +version = (root / 'VERSION').read_text().rstrip("\n") + +setup(name='ydata-datascience', + version=version, + description='Data science functionalities for all python packages at YData', + long_description=long_description, + long_description_content_type='text/markdown', + author='YData', + author_email='developers@ydata.ai', + classifiers=[ + 'Intended Audience :: Developers', + 'Programming Language :: Python :: 3 :: Only', + 'Topic :: Software Development :: Libraries :: Python Modules' + ], + url='https://github.com/ydataai/python-core', + packages=find_packages(exclude=['ydata', 'tests']), + include_package_data=True, + options={"bdist_wheel": {"universal": True}}) diff --git a/src/datascience/ydata/__init__.py b/src/datascience/ydata/__init__.py new file mode 100644 index 0000000..69e3be5 --- /dev/null +++ b/src/datascience/ydata/__init__.py @@ -0,0 +1 @@ +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/datascience/ydata/datascience/__init__.py b/src/datascience/ydata/datascience/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/datascience/ydata/datascience/common/__init__.py b/src/datascience/ydata/datascience/common/__init__.py new file mode 100644 index 0000000..0e5c2f0 --- /dev/null +++ b/src/datascience/ydata/datascience/common/__init__.py @@ -0,0 +1,6 @@ +from .privacy import PrivacyLevel + + +__all__ = [ + "PrivacyLevel" +] diff --git a/src/datascience/ydata/datascience/common/privacy.py b/src/datascience/ydata/datascience/common/privacy.py new file mode 100644 index 0000000..5f3aea1 --- /dev/null +++ b/src/datascience/ydata/datascience/common/privacy.py @@ -0,0 +1,20 @@ +from enum import Enum, auto + + +class PrivacyLevel(Enum): + """Privacy level exposed to the end-user.""" + HIGH_FIDELITY = auto() + """High fidelity""" + HIGH_PRIVACY = auto() + """High privacy""" + BALANCED_PRIVACY_FIDELITY = auto() + """Balanced privacy/fidelity""" + + def __str__(self): + if self.value == self.HIGH_FIDELITY.value: + return "High Fidelity" + if self.value == self.HIGH_PRIVACY.value: + return "High Privacy" + if self.value == self.BALANCED_PRIVACY_FIDELITY.value: + return "Balanced Privacy/Fidelity" + return "N/D"