{"id":37075049,"url":"https://github.com/oskarfernlund/niteshade","last_synced_at":"2026-01-14T08:50:38.039Z","repository":{"id":40495221,"uuid":"447929502","full_name":"oskarfernlund/niteshade","owner":"oskarfernlund","description":"Library for simulating data poisoning attack and defence strategies against online machine learning systems.","archived":false,"fork":false,"pushed_at":"2022-05-05T13:34:57.000Z","size":27988,"stargazers_count":7,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-12-06T15:48:32.405Z","etag":null,"topics":["adversarial-machine-learning","data-poisoning-attacks","online-machine-learning"],"latest_commit_sha":null,"homepage":"https://oskarfernlund.github.io/niteshade/","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oskarfernlund.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-01-14T10:33:02.000Z","updated_at":"2025-07-30T18:11:20.000Z","dependencies_parsed_at":"2022-08-09T22:12:30.825Z","dependency_job_id":null,"html_url":"https://github.com/oskarfernlund/niteshade","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/oskarfernlund/niteshade","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oskarfernlund%2Fniteshade","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oskarfernlund%2Fniteshade/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oskarfernlund%2Fniteshade/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oskarfernlund%2Fniteshade/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oskarfernlund","download_url":"https://codeload.github.com/oskarfernlund/niteshade/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oskarfernlund%2Fniteshade/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28414694,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T08:38:59.149Z","status":"ssl_error","status_checked_at":"2026-01-14T08:38:43.588Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adversarial-machine-learning","data-poisoning-attacks","online-machine-learning"],"created_at":"2026-01-14T08:50:37.343Z","updated_at":"2026-01-14T08:50:38.024Z","avatar_url":"https://github.com/oskarfernlund.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":".. image:: https://raw.githubusercontent.com/oskarfernlund/niteshade/master/docs/source/_figures/logo.png\n    :width: 400\n\n.. image:: https://img.shields.io/pypi/v/niteshade\n    :target: https://pypi.org/project/niteshade/\n    :alt: PyPI\n\n.. image:: https://img.shields.io/pypi/pyversions/niteshade\n    :target: https://pypi.org/project/niteshade/   \n    :alt: PyPI - Python Version\n\n.. image:: https://img.shields.io/pypi/l/niteshade\n    :target: https://pypi.org/project/niteshade/\n    :alt: PyPI - License\n\n========================================\n\n**niteshade** (/ˈnaɪt.ʃeɪd/) is a Python library for simulating data poisoning \nattack and defence strategies against online machine learning systems. The \nlibrary is written in Python 3.10 and offers a simple and intuitive API which \nis heavily integrated with PyTorch's machine learning framework.\n\nFor further details about the project, including background information, \nexample usage and detailed API documentation, visit \nhttps://oskarfernlund.github.io/niteshade/.\n\n\nInstallation\n------------\n\nniteshade requires Python 3.8 or higher.\n\nniteshade binaries may be installed from PyPI using pip \nhttps://pypi.org/project/niteshade/.\n\n.. code-block:: console\n\n    $ pip install niteshade\n\nUse of a virtual environment is *strongly* recommended. \n\n**Note:** Installation with Anaconda is not currently available. Anaconda users \nshould install niteshade with pip inside an Anaconda environment.\n\n\nUsage\n-----\n\nniteshade is a library of functions and classes which allow users to easily \nspecify data poisoning attack and defence strategies and simulate their effects \nagainst online learning using PyTorch models. Detailed information regarding \nthe python API and example usage can be found at \nhttps://oskarfernlund.github.io/niteshade/.\n\n\nDependencies\n------------\n\nThis project has separate package and developer dependencies, both of which can \nbe found in the ``env/`` directory in the form of ``requirements.txt`` and \n``environment.yml`` files for pip and Anaconda users. Package dependencies \n(prefixed with \"pkg\") consist exclusively of the packages required to use the \nlibrary and are installed automatically when niteshade binaries are installed \nwith pip. Developer dependencies (prefixed with \"dev\"), include the package \ndependencies as well as additional packages required for building the \ndocumentation, running tests, linting the source code and publishing releases.\n\n.. code-block:: console\n\n    $ cd env/\n\npip users:\n\n.. code-block:: console\n\n    $ pip install -r dev_requirements.txt # or pkg_requirements.txt\n\nAnaconda users:\n\n.. code-block:: console\n\n    $ conda env create -f dev_environment.yml # or pkg_environment.yml\n\n\nBuilding the Documentation\n--------------------------\n\nTo build documentation in various formats, you will need Sphinx and the \nreadthedocs theme (included in the developer dependencies). You can build the \ndocumentation by running ``make \u003cformat\u003e`` from the ``docs/`` directory. Run \n``make`` to get a list of all available output formats.\n\n.. code-block:: console\n\n    $ cd docs/\n    $ make clean \u0026\u0026 make \u003cformat\u003e\n\n\nRunning Unit and Integration Tests\n----------------------------------\n\nThis project uses pytest for unit and integration testing (included in the \ndeveloper dependencies). The tests may be run from the root directory as \nfollows:\n\n.. code-block:: console\n\n    $ pytest\n    ...\n    ===== x passed, x warnings in x.xx seconds =====\n\n\nPackage Releases\n----------------\n\nPackage releases are published to PyPI automatically when a tag is pushed to \nGitHub.\n\n.. code-block:: console\n\n    $ export RELEASE=x.x.x\n    $ git commit --allow-empty -m \"Release $RELEASE\"\n    $ git tag -a $RELEASE -m \"Version $RELEASE\"\n    $ git push origin --tags\n\n\nContributors\n------------\n\nniteshade was co-created by Mart Bakler, Oskar Fernlund, Alexandra \nNtemourtsidou, Jaime Sabal-Bermudez and Mustafa Saleem in 2022 at Imperial \nCollege London. The authors may be contacted at the following email addresses:\n\n- Mart Bakler: mart.bakler21@imperial.ac.uk\n- Oskar Fernlund: oskar.fernlund21@imperial.ac.uk\n- Alexandra Ntemourtsidou: alexandra.ntemourtsidou15@imperial.ac.uk\n- Jaime Sabal Bermúdez: jaime.sabal-bermudez21@imperial.ac.uk\n- Mustafa Saleem: mustafa.saleem21@imperial.ac.uk\n\nMany thanks to Dr. Emil C. Lupu for all his insightful feedback and support.\n\n**Disclaimer:** While niteshade is an open-source project and contributions are \nwelcome, we cannot guarantee that the codebase will be actively maintained in \nthe future.\n\n\nLicense\n-------\n\nniteshade uses the MIT license. Details regarding permissions to use and \ndistribute the software may be found in the ``LICENSE`` file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foskarfernlund%2Fniteshade","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foskarfernlund%2Fniteshade","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foskarfernlund%2Fniteshade/lists"}