{ "info": { "author": "The AdapterHub team and community contributors", "author_email": "calpt@mail.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Scientific/Engineering :: Artificial Intelligence" ], "description": "\r\n\r\n

\r\n\r\n

\r\n

\r\nAdapters\r\n

\r\n\r\n

\r\nA Unified Library for Parameter-Efficient and Modular Transfer Learning\r\n

\r\n

\r\n Website\r\n   \u2022  \r\n Documentation\r\n   \u2022  \r\n Paper\r\n

\r\n\r\n![Tests](https://github.com/Adapter-Hub/adapters/workflows/Tests/badge.svg?branch=adapters)\r\n[![GitHub](https://img.shields.io/github/license/adapter-hub/adapters.svg?color=blue)](https://github.com/adapter-hub/adapters/blob/main/LICENSE)\r\n[![PyPI](https://img.shields.io/pypi/v/adapters)](https://pypi.org/project/adapters/)\r\n\r\n_Adapters_ is an add-on library to [HuggingFace's Transformers](https://github.com/huggingface/transformers), integrating [various adapter methods](https://docs.adapterhub.ml/overview.html) into [state-of-the-art pre-trained language models](https://docs.adapterhub.ml/model_overview.html) with minimal coding overhead for training and inference.\r\n\r\n> **Note**: The _Adapters_ library has replaced the `adapter-transformers` package. All previously trained adapters are compatible with the new library. For transitioning, please read: https://docs.adapterhub.ml/transitioning.html.\r\n\r\n## Installation\r\n\r\n`adapters` currently supports **Python 3.8+** and **PyTorch 1.10+**.\r\nAfter [installing PyTorch](https://pytorch.org/get-started/locally/), you can install `adapters` from PyPI ...\r\n\r\n```\r\npip install -U adapters\r\n```\r\n\r\n... or from source by cloning the repository:\r\n\r\n```\r\ngit clone https://github.com/adapter-hub/adapters.git\r\ncd adapters\r\npip install .\r\n```\r\n\r\n## Quick Tour\r\n\r\n#### Load pre-trained adapters:\r\n\r\n```python\r\nfrom adapters import AutoAdapterModel\r\nfrom transformers import AutoTokenizer\r\n\r\nmodel = AutoAdapterModel.from_pretrained(\"roberta-base\")\r\ntokenizer = AutoTokenizer.from_pretrained(\"roberta-base\")\r\n\r\nmodel.load_adapter(\"AdapterHub/roberta-base-pf-imdb\", source=\"hf\", set_active=True)\r\n\r\nprint(model(**tokenizer(\"This works great!\", return_tensors=\"pt\")).logits)\r\n```\r\n\r\n**[Learn More](https://docs.adapterhub.ml/loading.html)**\r\n\r\n#### Adapt existing model setups:\r\n\r\n```python\r\nimport adapters\r\nfrom transformers import AutoModelForSequenceClassification\r\n\r\nmodel = AutoModelForSequenceClassification.from_pretrained(\"t5-base\")\r\n\r\nadapters.init(model)\r\n\r\nmodel.add_adapter(\"my_lora_adapter\", config=\"lora\")\r\nmodel.train_adapter(\"my_lora_adapter\")\r\n\r\n# Your regular training loop...\r\n```\r\n\r\n**[Learn More](https://docs.adapterhub.ml/quickstart.html)**\r\n\r\n#### Flexibly configure adapters:\r\n\r\n```python\r\nfrom adapters import ConfigUnion, PrefixTuningConfig, ParBnConfig, AutoAdapterModel\r\n\r\nmodel = AutoAdapterModel.from_pretrained(\"microsoft/deberta-v3-base\")\r\n\r\nadapter_config = ConfigUnion(\r\n PrefixTuningConfig(prefix_length=20),\r\n ParBnConfig(reduction_factor=4),\r\n)\r\nmodel.add_adapter(\"my_adapter\", config=adapter_config, set_active=True)\r\n```\r\n\r\n**[Learn More](https://docs.adapterhub.ml/overview.html)**\r\n\r\n#### Easily compose adapters in a single model:\r\n\r\n```python\r\nfrom adapters import AdapterSetup, AutoAdapterModel\r\nimport adapters.composition as ac\r\n\r\nmodel = AutoAdapterModel.from_pretrained(\"roberta-base\")\r\n\r\nqc = model.load_adapter(\"AdapterHub/roberta-base-pf-trec\")\r\nsent = model.load_adapter(\"AdapterHub/roberta-base-pf-imdb\")\r\n\r\nwith AdapterSetup(ac.Parallel(qc, sent)):\r\n print(model(**tokenizer(\"What is AdapterHub?\", return_tensors=\"pt\")))\r\n```\r\n\r\n**[Learn More](https://docs.adapterhub.ml/adapter_composition.html)**\r\n\r\n## Useful Resources\r\n\r\nHuggingFace's great documentation on getting started with _Transformers_ can be found [here](https://huggingface.co/transformers/index.html). `adapters` is fully compatible with _Transformers_.\r\n\r\nTo get started with adapters, refer to these locations:\r\n\r\n- **[Colab notebook tutorials](https://github.com/Adapter-Hub/adapters/tree/main/notebooks)**, a series notebooks providing an introduction to all the main concepts of (adapter-)transformers and AdapterHub\r\n- **https://docs.adapterhub.ml**, our documentation on training and using adapters with _adapters_\r\n- **https://adapterhub.ml** to explore available pre-trained adapter modules and share your own adapters\r\n- **[Examples folder](https://github.com/Adapter-Hub/adapters/tree/main/examples/pytorch)** of this repository containing HuggingFace's example training scripts, many adapted for training adapters\r\n\r\n## Implemented Methods\r\n\r\nCurrently, adapters integrates all architectures and methods listed below:\r\n\r\n| Method | Paper(s) | Quick Links |\r\n| --- | --- | --- |\r\n| Bottleneck adapters | [Houlsby et al. (2019)](https://arxiv.org/pdf/1902.00751.pdf)
[Bapna and Firat (2019)](https://arxiv.org/pdf/1909.08478.pdf) | [Quickstart](https://docs.adapterhub.ml/quickstart.html), [Notebook](https://colab.research.google.com/github/Adapter-Hub/adapters/blob/main/notebooks/01_Adapter_Training.ipynb) |\r\n| AdapterFusion | [Pfeiffer et al. (2021)](https://aclanthology.org/2021.eacl-main.39.pdf) | [Docs: Training](https://docs.adapterhub.ml/training.html#train-adapterfusion), [Notebook](https://colab.research.google.com/github/Adapter-Hub/adapters/blob/main/notebooks/03_Adapter_Fusion.ipynb) |\r\n| MAD-X,
Invertible adapters | [Pfeiffer et al. (2020)](https://aclanthology.org/2020.emnlp-main.617/) | [Notebook](https://colab.research.google.com/github/Adapter-Hub/adapters/blob/main/notebooks/04_Cross_Lingual_Transfer.ipynb) |\r\n| AdapterDrop | [R\u00fcckl\u00e9 et al. (2021)](https://arxiv.org/pdf/2010.11918.pdf) | [Notebook](https://colab.research.google.com/github/Adapter-Hub/adapters/blob/main/notebooks/05_Adapter_Drop_Training.ipynb) |\r\n| MAD-X 2.0,
Embedding training | [Pfeiffer et al. (2021)](https://arxiv.org/pdf/2012.15562.pdf) | [Docs: Embeddings](https://docs.adapterhub.ml/embeddings.html), [Notebook](https://colab.research.google.com/github/Adapter-Hub/adapters/blob/main/notebooks/08_NER_Wikiann.ipynb) |\r\n| Prefix Tuning | [Li and Liang (2021)](https://arxiv.org/pdf/2101.00190.pdf) | [Docs](https://docs.adapterhub.ml/methods.html#prefix-tuning) |\r\n| Parallel adapters,
Mix-and-Match adapters | [He et al. (2021)](https://arxiv.org/pdf/2110.04366.pdf) | [Docs](https://docs.adapterhub.ml/method_combinations.html#mix-and-match-adapters) |\r\n| Compacter | [Mahabadi et al. (2021)](https://arxiv.org/pdf/2106.04647.pdf) | [Docs](https://docs.adapterhub.ml/methods.html#compacter) |\r\n| LoRA | [Hu et al. (2021)](https://arxiv.org/pdf/2106.09685.pdf) | [Docs](https://docs.adapterhub.ml/methods.html#lora) |\r\n| (IA)^3 | [Liu et al. (2022)](https://arxiv.org/pdf/2205.05638.pdf) | [Docs](https://docs.adapterhub.ml/methods.html#ia-3) |\r\n| UniPELT | [Mao et al. (2022)](https://arxiv.org/pdf/2110.07577.pdf) | [Docs](https://docs.adapterhub.ml/method_combinations.html#unipelt) |\r\n| Prompt Tuning | [Lester et al. (2021)](https://aclanthology.org/2021.emnlp-main.243/) | [Docs](https://docs.adapterhub.ml/methods.html#prompt-tuning) |\r\n| QLoRA | [Dettmers et al. (2023)](https://arxiv.org/pdf/2305.14314.pdf) | [Notebook](https://colab.research.google.com/github/Adapter-Hub/adapters/blob/main/notebooks/QLoRA_Llama_Finetuning.ipynb) |\r\n\r\n## Supported Models\r\n\r\nWe currently support the PyTorch versions of all models listed on the **[Model Overview](https://docs.adapterhub.ml/model_overview.html) page** in our documentation.\r\n\r\n## Developing & Contributing\r\n\r\nTo get started with developing on _Adapters_ yourself and learn more about ways to contribute, please see https://docs.adapterhub.ml/contributing.html.\r\n\r\n## Citation\r\n\r\nIf you use _Adapters_ in your work, please consider citing our library paper: [Adapters: A Unified Library for Parameter-Efficient and Modular Transfer Learning](https://arxiv.org/abs/2311.11077)\r\n\r\n```\r\n@inproceedings{poth-etal-2023-adapters,\r\n title = \"Adapters: A Unified Library for Parameter-Efficient and Modular Transfer Learning\",\r\n author = {Poth, Clifton and\r\n Sterz, Hannah and\r\n Paul, Indraneil and\r\n Purkayastha, Sukannya and\r\n Engl{\\\"a}nder, Leon and\r\n Imhof, Timo and\r\n Vuli{\\'c}, Ivan and\r\n Ruder, Sebastian and\r\n Gurevych, Iryna and\r\n Pfeiffer, Jonas},\r\n booktitle = \"Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing: System Demonstrations\",\r\n month = dec,\r\n year = \"2023\",\r\n address = \"Singapore\",\r\n publisher = \"Association for Computational Linguistics\",\r\n url = \"https://aclanthology.org/2023.emnlp-demo.13\",\r\n pages = \"149--160\",\r\n}\r\n```\r\n\r\nAlternatively, for the predecessor `adapter-transformers`, the Hub infrastructure and adapters uploaded by the AdapterHub team, please consider citing our initial paper: [AdapterHub: A Framework for Adapting Transformers](https://arxiv.org/abs/2007.07779)\r\n\r\n```\r\n@inproceedings{pfeiffer2020AdapterHub,\r\n title={AdapterHub: A Framework for Adapting Transformers},\r\n author={Pfeiffer, Jonas and\r\n R{\\\"u}ckl{\\'e}, Andreas and\r\n Poth, Clifton and\r\n Kamath, Aishwarya and\r\n Vuli{\\'c}, Ivan and\r\n Ruder, Sebastian and\r\n Cho, Kyunghyun and\r\n Gurevych, Iryna},\r\n booktitle={Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: System Demonstrations},\r\n pages={46--54},\r\n year={2020}\r\n}\r\n```\r\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": null, "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "dynamic": null, "home_page": "https://github.com/adapter-hub/adapters", "keywords": "NLP deep learning transformer pytorch BERT adapters", "license": "Apache", "maintainer": null, "maintainer_email": null, "name": "adapters", "package_url": "https://pypi.org/project/adapters/", "platform": null, "project_url": "https://pypi.org/project/adapters/", "project_urls": { "Homepage": "https://github.com/adapter-hub/adapters" }, "provides_extra": null, "release_url": "https://pypi.org/project/adapters/0.2.2/", "requires_dist": [ "transformers~=4.40.2", "pytest<8.0.0,>=7.2.0; extra == \"dev\"", "pytest-subtests; extra == \"dev\"", "pytest-xdist; extra == \"dev\"", "timeout-decorator; extra == \"dev\"", "parameterized; extra == \"dev\"", "psutil; extra == \"dev\"", "datasets!=2.5.0; extra == \"dev\"", "dill<0.3.5; extra == \"dev\"", "evaluate>=0.2.0; extra == \"dev\"", "pytest-timeout; extra == \"dev\"", "black==22.3; extra == \"dev\"", "sacrebleu<2.0.0,>=1.4.12; extra == \"dev\"", "rouge-score!=0.0.7,!=0.0.8,!=0.1,!=0.1.1; extra == \"dev\"", "nltk; extra == \"dev\"", "GitPython<3.1.19; extra == \"dev\"", "sacremoses; extra == \"dev\"", "rjieba; extra == \"dev\"", "beautifulsoup4; extra == \"dev\"", "pillow; extra == \"dev\"", "accelerate>=0.21.0; extra == \"dev\"", "torch!=1.12.0,>=1.10; extra == \"dev\"", "sentencepiece!=0.1.92,>=0.1.91; extra == \"dev\"", "protobuf; extra == \"dev\"", "isort>=5.5.4; extra == \"dev\"", "flake8>=3.8.3; extra == \"dev\"", "docutils==0.16.0; extra == \"dev\"", "Jinja2==2.11.3; extra == \"dev\"", "markupsafe==2.0.1; extra == \"dev\"", "myst-parser; extra == \"dev\"", "sphinx==5.0.2; extra == \"dev\"", "sphinx-markdown-tables==0.0.17; extra == \"dev\"", "sphinx-rtd-theme==0.4.3; extra == \"dev\"", "sphinx-copybutton==0.5.2; extra == \"dev\"", "sphinxext-opengraph==0.4.1; extra == \"dev\"", "sphinx-intl==2.1.0; extra == \"dev\"", "sphinx-multiversion==0.2.4; extra == \"dev\"", "scikit-learn; extra == \"dev\"", "onnxruntime>=1.4.0; extra == \"dev\"", "onnxruntime-tools>=1.4.2; extra == \"dev\"", "docutils==0.16.0; extra == \"docs\"", "Jinja2==2.11.3; extra == \"docs\"", "markupsafe==2.0.1; extra == \"docs\"", "myst-parser; extra == \"docs\"", "sphinx==5.0.2; extra == \"docs\"", "sphinx-markdown-tables==0.0.17; extra == \"docs\"", "sphinx-rtd-theme==0.4.3; extra == \"docs\"", "sphinx-copybutton==0.5.2; extra == \"docs\"", "sphinxext-opengraph==0.4.1; extra == \"docs\"", "sphinx-intl==2.1.0; extra == \"docs\"", "sphinx-multiversion==0.2.4; extra == \"docs\"", "onnxruntime>=1.4.0; extra == \"onnxruntime\"", "onnxruntime-tools>=1.4.2; extra == \"onnxruntime\"", "black==22.3; extra == \"quality\"", "datasets!=2.5.0; extra == \"quality\"", "isort>=5.5.4; extra == \"quality\"", "flake8>=3.8.3; extra == \"quality\"", "GitPython<3.1.19; extra == \"quality\"", "sentencepiece!=0.1.92,>=0.1.91; extra == \"sentencepiece\"", "protobuf; extra == \"sentencepiece\"", "scikit-learn; extra == \"sklearn\"", "pytest<8.0.0,>=7.2.0; extra == \"testing\"", "pytest-subtests; extra == \"testing\"", "pytest-xdist; extra == \"testing\"", "timeout-decorator; extra == \"testing\"", "parameterized; extra == \"testing\"", "psutil; extra == \"testing\"", "datasets!=2.5.0; extra == \"testing\"", "dill<0.3.5; extra == \"testing\"", "evaluate>=0.2.0; extra == \"testing\"", "pytest-timeout; extra == \"testing\"", "black==22.3; extra == \"testing\"", "sacrebleu<2.0.0,>=1.4.12; extra == \"testing\"", "rouge-score!=0.0.7,!=0.0.8,!=0.1,!=0.1.1; extra == \"testing\"", "nltk; extra == \"testing\"", "GitPython<3.1.19; extra == \"testing\"", "sacremoses; extra == \"testing\"", "rjieba; extra == \"testing\"", "beautifulsoup4; extra == \"testing\"", "pillow; extra == \"testing\"", "accelerate>=0.21.0; extra == \"testing\"", "torch!=1.12.0,>=1.10; extra == \"torch\"", "accelerate>=0.21.0; extra == \"torch\"" ], "requires_python": ">=3.8.0", "summary": "A Unified Library for Parameter-Efficient and Modular Transfer Learning", "version": "0.2.2", "yanked": false, "yanked_reason": null }, "last_serial": 23884269, "releases": { "0.0.0.dev20230804": [ { "comment_text": "", "digests": { "blake2b_256": "f159c8ffde30581255806e4456b4f5009eb87c87b961720579a289a61537bc9f", "md5": "7710f5ed8c9de9b61cff64ac9fa582d2", "sha256": "a8df0fd84ef72487c6801ad9795e45dd36632c292fb442b0d9bd055e14e7d69c" }, "downloads": -1, "filename": "adapters-0.0.0.dev20230804-py3-none-any.whl", "has_sig": false, "md5_digest": "7710f5ed8c9de9b61cff64ac9fa582d2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8.0", "size": 204255, "upload_time": "2023-08-04T20:38:08", "upload_time_iso_8601": "2023-08-04T20:38:08.070184Z", "url": "https://files.pythonhosted.org/packages/f1/59/c8ffde30581255806e4456b4f5009eb87c87b961720579a289a61537bc9f/adapters-0.0.0.dev20230804-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "93cce1fd0edb05ac94f7c283f5fa58d92ed456f7bdf4e61218549cbbbafacafe", "md5": "f52a67a20f43825b9023e0d3cf4623cb", "sha256": "f2ef57c5acbebabe5612ec2a581eeb15ac32f17aeadf46c519d95586127e5527" }, "downloads": -1, "filename": "adapters-0.0.0.dev20230804.tar.gz", "has_sig": false, "md5_digest": "f52a67a20f43825b9023e0d3cf4623cb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.8.0", "size": 152639, "upload_time": "2023-08-04T20:38:10", "upload_time_iso_8601": "2023-08-04T20:38:10.281836Z", "url": "https://files.pythonhosted.org/packages/93/cc/e1fd0edb05ac94f7c283f5fa58d92ed456f7bdf4e61218549cbbbafacafe/adapters-0.0.0.dev20230804.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.0.dev20230825": [ { "comment_text": "", "digests": { "blake2b_256": "fcf74a2702aba6c50af01a0275b5ae9d82e99f75848e78655692715a452ca492", "md5": "e1b9037322874a55144e723b1adbb6be", "sha256": "0d43ced46986f77a7607b86bb746d7dd057c5c9096568372d958f354c5388b21" }, "downloads": -1, "filename": "adapters-0.0.0.dev20230825-py3-none-any.whl", "has_sig": false, "md5_digest": "e1b9037322874a55144e723b1adbb6be", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8.0", "size": 209355, "upload_time": "2023-08-25T14:22:20", "upload_time_iso_8601": "2023-08-25T14:22:20.292414Z", "url": "https://files.pythonhosted.org/packages/fc/f7/4a2702aba6c50af01a0275b5ae9d82e99f75848e78655692715a452ca492/adapters-0.0.0.dev20230825-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "454b8f30ec4858fc93b228f7ee512b5c76674aa6c26d498843b20b20a94cb110", "md5": "60731c4cc019cc51728a4637b5d9d8b7", "sha256": "df1acf0e53bbdf9bf36cda27d116939e80a65fb687747cc4dad7642c99b4c4fb" }, "downloads": -1, "filename": "adapters-0.0.0.dev20230825.tar.gz", "has_sig": false, "md5_digest": "60731c4cc019cc51728a4637b5d9d8b7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.8.0", "size": 152021, "upload_time": "2023-08-25T14:22:22", "upload_time_iso_8601": "2023-08-25T14:22:22.469627Z", "url": "https://files.pythonhosted.org/packages/45/4b/8f30ec4858fc93b228f7ee512b5c76674aa6c26d498843b20b20a94cb110/adapters-0.0.0.dev20230825.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.0.dev20231111": [ { "comment_text": "", "digests": { "blake2b_256": "0d12cd072223d15ab24645a59386a7ebad105aba61bed8731c5e7d2eaf514aa2", "md5": "50ffeb41d26eb3bb08e65ddc6cab005f", "sha256": "d2742220e3920aae5af687f3df190061d8d3b8b94277a37c89ea7bac4fbc5dfd" }, "downloads": -1, "filename": "adapters-0.0.0.dev20231111-py3-none-any.whl", "has_sig": false, "md5_digest": "50ffeb41d26eb3bb08e65ddc6cab005f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8.0", "size": 242448, "upload_time": "2023-11-11T15:44:53", "upload_time_iso_8601": "2023-11-11T15:44:53.531980Z", "url": "https://files.pythonhosted.org/packages/0d/12/cd072223d15ab24645a59386a7ebad105aba61bed8731c5e7d2eaf514aa2/adapters-0.0.0.dev20231111-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "8ce4b5c14e3fa203c6d3fd34df8988240e22389fc6fa7006c0a4d3ab35107a73", "md5": "10d7c9e988285fd097f15623ce45b0bc", "sha256": "d7915cb0281a7bd1f1da065583715422102a4a150ffa8da6e0564824aa710105" }, "downloads": -1, "filename": "adapters-0.0.0.dev20231111.tar.gz", "has_sig": false, "md5_digest": "10d7c9e988285fd097f15623ce45b0bc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.8.0", "size": 149179, "upload_time": "2023-11-11T15:44:56", "upload_time_iso_8601": "2023-11-11T15:44:56.094901Z", "url": "https://files.pythonhosted.org/packages/8c/e4/b5c14e3fa203c6d3fd34df8988240e22389fc6fa7006c0a4d3ab35107a73/adapters-0.0.0.dev20231111.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.0.dev20231116": [ { "comment_text": "", "digests": { "blake2b_256": "72e25499ff5f2a90248e6941c5adbcbda99da31524edd9c8a14f6d8249e51cab", "md5": "02627faf8f14d6b35a25b5324af4ceb7", "sha256": "9c9b1ecc42dd898d0b693cd8516316d3c94d7d0175870c6f880a9eeb53e553c1" }, "downloads": -1, "filename": "adapters-0.0.0.dev20231116-py3-none-any.whl", "has_sig": false, "md5_digest": "02627faf8f14d6b35a25b5324af4ceb7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8.0", "size": 243680, "upload_time": "2023-11-16T21:04:59", "upload_time_iso_8601": "2023-11-16T21:04:59.240273Z", "url": "https://files.pythonhosted.org/packages/72/e2/5499ff5f2a90248e6941c5adbcbda99da31524edd9c8a14f6d8249e51cab/adapters-0.0.0.dev20231116-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "29e7755f6337fa19f82bd5a4a27ff7d7faeee910479fdb73e81ffe2e059322e5", "md5": "4137520b3afb827a8fa0562bee41357f", "sha256": "c778486f01d7a8ab05a5c0be02f6f5d75a37e4cc813c9bdbe29c56c5cb57529b" }, "downloads": -1, "filename": "adapters-0.0.0.dev20231116.tar.gz", "has_sig": false, "md5_digest": "4137520b3afb827a8fa0562bee41357f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.8.0", "size": 150640, "upload_time": "2023-11-16T21:05:01", "upload_time_iso_8601": "2023-11-16T21:05:01.772901Z", "url": "https://files.pythonhosted.org/packages/29/e7/755f6337fa19f82bd5a4a27ff7d7faeee910479fdb73e81ffe2e059322e5/adapters-0.0.0.dev20231116.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.0.dev20231123": [ { "comment_text": "", "digests": { "blake2b_256": "6d44ae02a587a55463fb7fa60b9f3d8cfb102be6bd1cb44625f912e995dca1bb", "md5": "46eab0def017efa36ff59212e7fdce36", "sha256": "679b94414a12332f019d00917ebf109721258e0297d6395fae17a24f4edec8f0" }, "downloads": -1, "filename": "adapters-0.0.0.dev20231123-py3-none-any.whl", "has_sig": false, "md5_digest": "46eab0def017efa36ff59212e7fdce36", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8.0", "size": 229728, "upload_time": "2023-11-23T13:47:46", "upload_time_iso_8601": "2023-11-23T13:47:46.087521Z", "url": "https://files.pythonhosted.org/packages/6d/44/ae02a587a55463fb7fa60b9f3d8cfb102be6bd1cb44625f912e995dca1bb/adapters-0.0.0.dev20231123-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "8c02d8029f60cdbcc0e03a939b5bf8ea9a161701eb58ed3a801f27cba08af23d", "md5": "da96503e9c1804daf36d18bec015262d", "sha256": "89ad02245dd41e710ec0f8a40ab1522202f14f60d73b026d3008927135aaeb70" }, "downloads": -1, "filename": "adapters-0.0.0.dev20231123.tar.gz", "has_sig": false, "md5_digest": "da96503e9c1804daf36d18bec015262d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.8.0", "size": 177316, "upload_time": "2023-11-23T13:47:47", "upload_time_iso_8601": "2023-11-23T13:47:47.904774Z", "url": "https://files.pythonhosted.org/packages/8c/02/d8029f60cdbcc0e03a939b5bf8ea9a161701eb58ed3a801f27cba08af23d/adapters-0.0.0.dev20231123.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "blake2b_256": "a40195ad86c896b5917d892f984f07cfd0c4c9ed93c8029647b55394072e69ba", "md5": "5ebe626d7486ef21812ff3282ae7800e", "sha256": "c828dabaf8da60881847afcba6ebea0ae89cdd443d243cd1a866bf05366570ad" }, "downloads": -1, "filename": "adapters-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5ebe626d7486ef21812ff3282ae7800e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8.0", "size": 229867, "upload_time": "2023-11-23T23:51:23", "upload_time_iso_8601": "2023-11-23T23:51:23.081132Z", "url": "https://files.pythonhosted.org/packages/a4/01/95ad86c896b5917d892f984f07cfd0c4c9ed93c8029647b55394072e69ba/adapters-0.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "667f6e9d4d40d7fdde24ed28293784e0edc0fdb6524d00126be94848728c1730", "md5": "f3d84aa37113cec1a5a5511696e57db8", "sha256": "2815e7210963429f7ea0cdb902fc9ca73db9eb42fe53a62fb2c4e319d0cff9fa" }, "downloads": -1, "filename": "adapters-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f3d84aa37113cec1a5a5511696e57db8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.8.0", "size": 177839, "upload_time": "2023-11-23T23:51:25", "upload_time_iso_8601": "2023-11-23T23:51:25.646377Z", "url": "https://files.pythonhosted.org/packages/66/7f/6e9d4d40d7fdde24ed28293784e0edc0fdb6524d00126be94848728c1730/adapters-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "blake2b_256": "67dadabf95925c191ec20f7f6fef92d2be99f3aaa80b2939eb21d5ad53a12ebe", "md5": "5ce9ae5ec24e9c2033800bf83cb180c6", "sha256": "0838011c7662533a3147e4ca4c6b1df48c519c0a90558848a0e2cf14907dd90c" }, "downloads": -1, "filename": "adapters-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5ce9ae5ec24e9c2033800bf83cb180c6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8.0", "size": 252848, "upload_time": "2024-01-09T21:13:49", "upload_time_iso_8601": "2024-01-09T21:13:49.810872Z", "url": "https://files.pythonhosted.org/packages/67/da/dabf95925c191ec20f7f6fef92d2be99f3aaa80b2939eb21d5ad53a12ebe/adapters-0.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "e881b4fcf583732897efbe846ac585dadaf7792999b1cfca06d228964f30c187", "md5": "100383501b48fa432f11bcde6db5b8a7", "sha256": "201cee8fd71f7dbd4bfeb7a4bf3a52ce9cd28d720d9fd2691210dbd6667d09ce" }, "downloads": -1, "filename": "adapters-0.1.1.tar.gz", "has_sig": false, "md5_digest": "100383501b48fa432f11bcde6db5b8a7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.8.0", "size": 178622, "upload_time": "2024-01-09T21:13:51", "upload_time_iso_8601": "2024-01-09T21:13:51.613760Z", "url": "https://files.pythonhosted.org/packages/e8/81/b4fcf583732897efbe846ac585dadaf7792999b1cfca06d228964f30c187/adapters-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "blake2b_256": "77598ee793541c4d9f77213623f6d70b0236920cb97e89e4c74722b19a0a87ba", "md5": "9e32c5cf73bbdc7b1258ddd47f070704", "sha256": "55e42c38bffbf752565fbb92f60fe1e2070cec2c081b71881383ef68f61f47f6" }, "downloads": -1, "filename": "adapters-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9e32c5cf73bbdc7b1258ddd47f070704", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8.0", "size": 256008, "upload_time": "2024-02-28T21:45:15", "upload_time_iso_8601": "2024-02-28T21:45:15.246417Z", "url": "https://files.pythonhosted.org/packages/77/59/8ee793541c4d9f77213623f6d70b0236920cb97e89e4c74722b19a0a87ba/adapters-0.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "88c7298b8dbe27bfb1701dcd865bfd523e4c98ed99b23a71e6d0276d34808eba", "md5": "7f907254ea5b35c95f1fd1264eb017b3", "sha256": "80fc3056447bb10563e4f83fa35f1abea301ec24d7891adeae20d8c00a73cfd0" }, "downloads": -1, "filename": "adapters-0.1.2.tar.gz", "has_sig": false, "md5_digest": "7f907254ea5b35c95f1fd1264eb017b3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.8.0", "size": 183499, "upload_time": "2024-02-28T21:45:17", "upload_time_iso_8601": "2024-02-28T21:45:17.271206Z", "url": "https://files.pythonhosted.org/packages/88/c7/298b8dbe27bfb1701dcd865bfd523e4c98ed99b23a71e6d0276d34808eba/adapters-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "blake2b_256": "e925eb04e6c6b24cb617c47097c9e0970ba6e376cf444e2a42beee6f5a90d2f2", "md5": "2ca70f8860915f683454201f66272cd9", "sha256": "e6e87e490449879b8b298846eb685aa4af120358fc4663c82b43b82ffbe3b4ff" }, "downloads": -1, "filename": "adapters-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2ca70f8860915f683454201f66272cd9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8.0", "size": 259253, "upload_time": "2024-04-25T13:47:59", "upload_time_iso_8601": "2024-04-25T13:47:59.573921Z", "url": "https://files.pythonhosted.org/packages/e9/25/eb04e6c6b24cb617c47097c9e0970ba6e376cf444e2a42beee6f5a90d2f2/adapters-0.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "1958bcc996627926cb8f836d6ef986c155c9fd01859e19780304ebd6b0d7a412", "md5": "4552af55db6e0d817086d5b1f1baa1fc", "sha256": "02cc6a2cda11bd3ab2c9f2e1516268c3d4de35247da7ad3c9f194edcc90275b4" }, "downloads": -1, "filename": "adapters-0.2.0.tar.gz", "has_sig": false, "md5_digest": "4552af55db6e0d817086d5b1f1baa1fc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.8.0", "size": 186756, "upload_time": "2024-04-25T13:48:01", "upload_time_iso_8601": "2024-04-25T13:48:01.548079Z", "url": "https://files.pythonhosted.org/packages/19/58/bcc996627926cb8f836d6ef986c155c9fd01859e19780304ebd6b0d7a412/adapters-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "blake2b_256": "9a6df66636dee28ddf029b8f6bdb307f9f594d9784f8741bc56e2308f0aadff0", "md5": "7a96a9ca29ea10684bc16b37d9b8044c", "sha256": "3101a9eaf93cd43ad4074957ab281fe77e72d176b08c50326f750c28c551cd75" }, "downloads": -1, "filename": "adapters-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7a96a9ca29ea10684bc16b37d9b8044c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8.0", "size": 260401, "upload_time": "2024-05-21T19:15:42", "upload_time_iso_8601": "2024-05-21T19:15:42.511924Z", "url": "https://files.pythonhosted.org/packages/9a/6d/f66636dee28ddf029b8f6bdb307f9f594d9784f8741bc56e2308f0aadff0/adapters-0.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "e074acc3a4c0cc009a91bfe3e3be199b295c17c66afcdc6d90db4b80b3aa4095", "md5": "2b6c0a77ea592d5b06ff714f2d037985", "sha256": "75805fbbc89cb0930ae220452e8b9609436823b5435aecb79b2e6c651e0ce802" }, "downloads": -1, "filename": "adapters-0.2.1.tar.gz", "has_sig": false, "md5_digest": "2b6c0a77ea592d5b06ff714f2d037985", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.8.0", "size": 188046, "upload_time": "2024-05-21T19:15:45", "upload_time_iso_8601": "2024-05-21T19:15:45.086267Z", "url": "https://files.pythonhosted.org/packages/e0/74/acc3a4c0cc009a91bfe3e3be199b295c17c66afcdc6d90db4b80b3aa4095/adapters-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.2": [ { "comment_text": "", "digests": { "blake2b_256": "4ff2d1cd221bcba97585b0b4b46f96b8cd3593ee2c1353042b925eb77c4a97a6", "md5": "c5cd6e048b2423d0ad96831997b9fc5d", "sha256": "533b0bbb230132841295fe749b452e8c79f47b5a89f2e251ee1e0ef5380e7c09" }, "downloads": -1, "filename": "adapters-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c5cd6e048b2423d0ad96831997b9fc5d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8.0", "size": 262994, "upload_time": "2024-06-27T20:23:01", "upload_time_iso_8601": "2024-06-27T20:23:01.755282Z", "url": "https://files.pythonhosted.org/packages/4f/f2/d1cd221bcba97585b0b4b46f96b8cd3593ee2c1353042b925eb77c4a97a6/adapters-0.2.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "d13aa37ab7055f23994a344a98739a63a0b75c71563c87ee8b7b6bf67d0b90ec", "md5": "b3361a79a273d88e734a8cfc88394d17", "sha256": "8d9abb4039a37587bab2f1ee44931ed7d7ebc7e8facb44d65d003ed3cb0f5649" }, "downloads": -1, "filename": "adapters-0.2.2.tar.gz", "has_sig": false, "md5_digest": "b3361a79a273d88e734a8cfc88394d17", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.8.0", "size": 189688, "upload_time": "2024-06-27T20:23:04", "upload_time_iso_8601": "2024-06-27T20:23:04.583995Z", "url": "https://files.pythonhosted.org/packages/d1/3a/a37ab7055f23994a344a98739a63a0b75c71563c87ee8b7b6bf67d0b90ec/adapters-0.2.2.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "blake2b_256": "4ff2d1cd221bcba97585b0b4b46f96b8cd3593ee2c1353042b925eb77c4a97a6", "md5": "c5cd6e048b2423d0ad96831997b9fc5d", "sha256": "533b0bbb230132841295fe749b452e8c79f47b5a89f2e251ee1e0ef5380e7c09" }, "downloads": -1, "filename": "adapters-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c5cd6e048b2423d0ad96831997b9fc5d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.8.0", "size": 262994, "upload_time": "2024-06-27T20:23:01", "upload_time_iso_8601": "2024-06-27T20:23:01.755282Z", "url": "https://files.pythonhosted.org/packages/4f/f2/d1cd221bcba97585b0b4b46f96b8cd3593ee2c1353042b925eb77c4a97a6/adapters-0.2.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "d13aa37ab7055f23994a344a98739a63a0b75c71563c87ee8b7b6bf67d0b90ec", "md5": "b3361a79a273d88e734a8cfc88394d17", "sha256": "8d9abb4039a37587bab2f1ee44931ed7d7ebc7e8facb44d65d003ed3cb0f5649" }, "downloads": -1, "filename": "adapters-0.2.2.tar.gz", "has_sig": false, "md5_digest": "b3361a79a273d88e734a8cfc88394d17", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.8.0", "size": 189688, "upload_time": "2024-06-27T20:23:04", "upload_time_iso_8601": "2024-06-27T20:23:04.583995Z", "url": "https://files.pythonhosted.org/packages/d1/3a/a37ab7055f23994a344a98739a63a0b75c71563c87ee8b7b6bf67d0b90ec/adapters-0.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }