Package: niteshade
niteshade(/ˈnaɪt.ʃeɪd/) is a Python library for simulating data poisoning
attack and defence strategies against online machine learning systems. The
library is written in Python 3.10 and offers a simple and intuitive API which
is heavily integrated with PyTorch’s machine learning framework.For further details about the project, including background information,
example usage and detailed API documentation, visithttps://oskarfernlund.github.io/niteshade/.Installationniteshade requires Python 3.8 or higher.niteshade binaries may be installed from PyPI using piphttps://pypi.org/project/niteshade/.$pipinstallniteshadeUse of a virtual environment isstronglyrecommended.Note:Installation with Anaconda is not currently available. Anaconda users
should install niteshade with pip inside an Anaconda environment.Usageniteshade is a library of functions and classes which allow users to easily
specify data poisoning attack and defence strategies and simulate their effects
against online learning using PyTorch models. Detailed information regarding
the python API and example usage can be found athttps://oskarfernlund.github.io/niteshade/.DependenciesThis project has separate package and developer dependencies, both of which can
be found in theenv/directory in the form ofrequirements.txtandenvironment.ymlfiles for pip and Anaconda users. Package dependencies
(prefixed with “pkg”) consist exclusively of the packages required to use the
library and are installed automatically when niteshade binaries are installed
with pip. Developer dependencies (prefixed with “dev”), include the package
dependencies as well as additional packages required for building the
documentation, running tests, linting the source code and publishing releases.$cdenv/pip users:$pipinstall-rdev_requirements.txt# or pkg_requirements.txtAnaconda users:$condaenvcreate-fdev_environment.yml# or pkg_environment.ymlBuilding the DocumentationTo build documentation in various formats, you will need Sphinx and the
readthedocs theme (included in the developer dependencies). You can build the
documentation by runningmake <format>from thedocs/directory. Runmaketo get a list of all available output formats.$cddocs/$makeclean&&make<format>Running Unit and Integration TestsThis project uses pytest for unit and integration testing (included in the
developer dependencies). The tests may be run from the root directory as
follows:$pytest...
===== x passed, x warnings in x.xx seconds =====Package ReleasesPackage releases are published to PyPI automatically when a tag is pushed to
GitHub.$exportRELEASE=x.x.x$gitcommit--allow-empty-m"Release$RELEASE"$gittag-a$RELEASE-m"Version$RELEASE"$gitpushorigin--tagsContributorsniteshade was co-created by Mart Bakler, Oskar Fernlund, Alexandra
Ntemourtsidou, Jaime Sabal-Bermudez and Mustafa Saleem in 2022 at Imperial
College London. The authors may be contacted at the following email addresses:Mart Bakler:mart.bakler21@imperial.ac.ukOskar Fernlund:oskar.fernlund21@imperial.ac.ukAlexandra Ntemourtsidou:alexandra.ntemourtsidou15@imperial.ac.ukJaime Sabal Bermúdez:jaime.sabal-bermudez21@imperial.ac.ukMustafa Saleem:mustafa.saleem21@imperial.ac.ukMany thanks to Dr. Emil C. Lupu for all his insightful feedback and support.Disclaimer:While niteshade is an open-source project and contributions are
welcome, we cannot guarantee that the codebase will be actively maintained in
the future.Licenseniteshade uses the MIT license. Details regarding permissions to use and
distribute the software may be found in theLICENSEfile.