2023-09-29T09:34:42,971 Created temporary directory: /tmp/pip-build-tracker-tbnyz_rd 2023-09-29T09:34:42,972 Initialized build tracking at /tmp/pip-build-tracker-tbnyz_rd 2023-09-29T09:34:42,972 Created build tracker: /tmp/pip-build-tracker-tbnyz_rd 2023-09-29T09:34:42,973 Entered build tracker: /tmp/pip-build-tracker-tbnyz_rd 2023-09-29T09:34:42,974 Created temporary directory: /tmp/pip-wheel-yjotgrdj 2023-09-29T09:34:42,977 Created temporary directory: /tmp/pip-ephem-wheel-cache-ry5mjr5_ 2023-09-29T09:34:42,998 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-09-29T09:34:43,002 2 location(s) to search for versions of djangorestframework-simple-apikey: 2023-09-29T09:34:43,002 * https://pypi.org/simple/djangorestframework-simple-apikey/ 2023-09-29T09:34:43,002 * https://www.piwheels.org/simple/djangorestframework-simple-apikey/ 2023-09-29T09:34:43,003 Fetching project page and analyzing links: https://pypi.org/simple/djangorestframework-simple-apikey/ 2023-09-29T09:34:43,003 Getting page https://pypi.org/simple/djangorestframework-simple-apikey/ 2023-09-29T09:34:43,005 Found index url https://pypi.org/simple/ 2023-09-29T09:34:43,142 Fetched page https://pypi.org/simple/djangorestframework-simple-apikey/ as application/vnd.pypi.simple.v1+json 2023-09-29T09:34:43,147 Found link https://files.pythonhosted.org/packages/af/37/02979788dae0d9440cb8ad308aefad3af868cd11fbd55734c489029258db/djangorestframework-simple-apikey-0.0.1.tar.gz (from https://pypi.org/simple/djangorestframework-simple-apikey/), version: 0.0.1 2023-09-29T09:34:43,147 Skipping link: No binaries permitted for djangorestframework-simple-apikey: https://files.pythonhosted.org/packages/94/d2/0c88e78919d54b4da9b385f1d5774161e3b66b1b38cc02374535cde7f39c/djangorestframework_simple_apikey-0.0.1-py2.py3-none-any.whl (from https://pypi.org/simple/djangorestframework-simple-apikey/) 2023-09-29T09:34:43,148 Found link https://files.pythonhosted.org/packages/17/11/9c1ae306e4a09d4aed5db60287486a22d89bee685e90f7e68b5a78fdb2a3/djangorestframework-simple-apikey-0.0.2.tar.gz (from https://pypi.org/simple/djangorestframework-simple-apikey/), version: 0.0.2 2023-09-29T09:34:43,149 Skipping link: No binaries permitted for djangorestframework-simple-apikey: https://files.pythonhosted.org/packages/ba/da/4b35e18211f3849eb5b4e3fd1f1aeecf776621e54d8c7e2431d6980f066a/djangorestframework_simple_apikey-0.0.2-py2.py3-none-any.whl (from https://pypi.org/simple/djangorestframework-simple-apikey/) 2023-09-29T09:34:43,149 Found link https://files.pythonhosted.org/packages/77/36/431d30e8d3a1730d68793ff3bec6a748b196dcaefb89a61d71a6810ab709/djangorestframework-simple-apikey-0.0.3.tar.gz (from https://pypi.org/simple/djangorestframework-simple-apikey/), version: 0.0.3 2023-09-29T09:34:43,150 Skipping link: No binaries permitted for djangorestframework-simple-apikey: https://files.pythonhosted.org/packages/f9/76/2b6a8886a9e28999066822fe9ae92e0062a4e6bc21c57f22a0ebf6ae3f60/djangorestframework_simple_apikey-0.0.3-py2.py3-none-any.whl (from https://pypi.org/simple/djangorestframework-simple-apikey/) 2023-09-29T09:34:43,151 Found link https://files.pythonhosted.org/packages/a0/2f/8a80c07c203d0ec6040ddd5dbc0b1affbde60a863023cd90de91db9a678d/djangorestframework-simple-apikey-0.1.0.tar.gz (from https://pypi.org/simple/djangorestframework-simple-apikey/), version: 0.1.0 2023-09-29T09:34:43,151 Skipping link: No binaries permitted for djangorestframework-simple-apikey: https://files.pythonhosted.org/packages/39/16/5e92373ff6637ca0bed9092ba28155c366138882d6c5cd22ff5a9ee231fc/djangorestframework_simple_apikey-0.1.0-py2.py3-none-any.whl (from https://pypi.org/simple/djangorestframework-simple-apikey/) 2023-09-29T09:34:43,152 Found link https://files.pythonhosted.org/packages/4c/08/be854760024c96354f8da88c86a14df2fff96e9756b204468dba4359c9f2/djangorestframework-simple-apikey-0.1.1.tar.gz (from https://pypi.org/simple/djangorestframework-simple-apikey/), version: 0.1.1 2023-09-29T09:34:43,153 Skipping link: No binaries permitted for djangorestframework-simple-apikey: https://files.pythonhosted.org/packages/48/d6/9a27922df1fbba2a66b94ac1e5df2529e811c410267c54cde495ecaa5ac3/djangorestframework_simple_apikey-0.1.1-py2.py3-none-any.whl (from https://pypi.org/simple/djangorestframework-simple-apikey/) 2023-09-29T09:34:43,154 Found link https://files.pythonhosted.org/packages/39/e7/5be11839bd985f88b88a025ff03ea6df38bae0e01b2e2e7c3035a8685ab8/djangorestframework-simple-apikey-0.1.2.tar.gz (from https://pypi.org/simple/djangorestframework-simple-apikey/), version: 0.1.2 2023-09-29T09:34:43,154 Skipping link: No binaries permitted for djangorestframework-simple-apikey: https://files.pythonhosted.org/packages/d6/e8/e4228c57294acab2c50c3af558d5c3edd5eb03686ad8fcd53299279e3380/djangorestframework_simple_apikey-0.1.2-py2.py3-none-any.whl (from https://pypi.org/simple/djangorestframework-simple-apikey/) 2023-09-29T09:34:43,155 Found link https://files.pythonhosted.org/packages/d4/70/8a33e4e6575c85286642d2a7b382faf3864759ba5aedc469c6a98020c692/djangorestframework-simple-apikey-1.0.0.tar.gz (from https://pypi.org/simple/djangorestframework-simple-apikey/), version: 1.0.0 2023-09-29T09:34:43,155 Skipping link: No binaries permitted for djangorestframework-simple-apikey: https://files.pythonhosted.org/packages/6f/91/9efa6d6a536ae92c0532071048f1233a49b5a0b17b50eaa44cefa241f49a/djangorestframework_simple_apikey-1.0.0-py2.py3-none-any.whl (from https://pypi.org/simple/djangorestframework-simple-apikey/) 2023-09-29T09:34:43,156 Found link https://files.pythonhosted.org/packages/36/8f/f48e3f288a32d3ec46585f94fa1c91713dcc59abdff8c21d9f3527570f5a/djangorestframework-simple-apikey-1.0.1.tar.gz (from https://pypi.org/simple/djangorestframework-simple-apikey/), version: 1.0.1 2023-09-29T09:34:43,156 Skipping link: No binaries permitted for djangorestframework-simple-apikey: https://files.pythonhosted.org/packages/67/cd/0c26d3defa20771c6837bfa76f050e104ee37d02bc27d9ac05d9f4901449/djangorestframework_simple_apikey-1.0.1-py2.py3-none-any.whl (from https://pypi.org/simple/djangorestframework-simple-apikey/) 2023-09-29T09:34:43,157 Found link https://files.pythonhosted.org/packages/8c/83/ff96c2511516e457deb3c8c2f383950453c87f3b2407f8c65860b4148558/djangorestframework-simple-apikey-1.0.2.tar.gz (from https://pypi.org/simple/djangorestframework-simple-apikey/), version: 1.0.2 2023-09-29T09:34:43,158 Skipping link: No binaries permitted for djangorestframework-simple-apikey: https://files.pythonhosted.org/packages/f5/33/92a17c5f6e1f58c27341a770cc784195501deebd8b3bd145f845fbe0c33f/djangorestframework_simple_apikey-1.0.2-py2.py3-none-any.whl (from https://pypi.org/simple/djangorestframework-simple-apikey/) 2023-09-29T09:34:43,159 Fetching project page and analyzing links: https://www.piwheels.org/simple/djangorestframework-simple-apikey/ 2023-09-29T09:34:43,159 Getting page https://www.piwheels.org/simple/djangorestframework-simple-apikey/ 2023-09-29T09:34:43,161 Found index url https://www.piwheels.org/simple/ 2023-09-29T09:34:43,327 Fetched page https://www.piwheels.org/simple/djangorestframework-simple-apikey/ as text/html 2023-09-29T09:34:43,330 Skipping link: No binaries permitted for djangorestframework-simple-apikey: https://www.piwheels.org/simple/djangorestframework-simple-apikey/djangorestframework_simple_apikey-1.0.1-py2.py3-none-any.whl#sha256=1ccfb4d28c4023528ac4c8a2c9952bff6a51b2a34fe2de4acc36e0d0a72b9722 (from https://www.piwheels.org/simple/djangorestframework-simple-apikey/) 2023-09-29T09:34:43,331 Skipping link: No binaries permitted for djangorestframework-simple-apikey: https://www.piwheels.org/simple/djangorestframework-simple-apikey/djangorestframework_simple_apikey-1.0.0-py2.py3-none-any.whl#sha256=f3a80ab51f0d3a93a6ecd1a5c3dabcb397722f7349393e359cb5e0b8d4d1fc29 (from https://www.piwheels.org/simple/djangorestframework-simple-apikey/) 2023-09-29T09:34:43,332 Skipping link: No binaries permitted for djangorestframework-simple-apikey: https://www.piwheels.org/simple/djangorestframework-simple-apikey/djangorestframework_simple_apikey-0.1.2-py2.py3-none-any.whl#sha256=538b1d3c050e91664248318f8faa2c06a862874d1cf18bae5bf0d297147dde91 (from https://www.piwheels.org/simple/djangorestframework-simple-apikey/) 2023-09-29T09:34:43,332 Skipping link: No binaries permitted for djangorestframework-simple-apikey: https://www.piwheels.org/simple/djangorestframework-simple-apikey/djangorestframework_simple_apikey-0.1.1-py2.py3-none-any.whl#sha256=e15ba76005860b2e2d93f63a05ca4d95dd0dd75c3cfbfc8284ba0a578ea25fc4 (from https://www.piwheels.org/simple/djangorestframework-simple-apikey/) 2023-09-29T09:34:43,333 Skipping link: No binaries permitted for djangorestframework-simple-apikey: https://www.piwheels.org/simple/djangorestframework-simple-apikey/djangorestframework_simple_apikey-0.1.0-py2.py3-none-any.whl#sha256=37a3e6da2dc9e8c60a2d4479623ae3607cfdc24dd58f8d4b92945805633bede7 (from https://www.piwheels.org/simple/djangorestframework-simple-apikey/) 2023-09-29T09:34:43,334 Skipping link: No binaries permitted for djangorestframework-simple-apikey: https://www.piwheels.org/simple/djangorestframework-simple-apikey/djangorestframework_simple_apikey-0.0.3-py2.py3-none-any.whl#sha256=20375156a9e3c1cbd3fddcd740dfa31a3cd90512847585d020b57467b87dfa43 (from https://www.piwheels.org/simple/djangorestframework-simple-apikey/) 2023-09-29T09:34:43,334 Skipping link: No binaries permitted for djangorestframework-simple-apikey: https://www.piwheels.org/simple/djangorestframework-simple-apikey/djangorestframework_simple_apikey-0.0.2-py2.py3-none-any.whl#sha256=909677d726c4b0df9146945bc9097b399209ba907f19ee6eb3aafb82867d6d76 (from https://www.piwheels.org/simple/djangorestframework-simple-apikey/) 2023-09-29T09:34:43,335 Skipping link: No binaries permitted for djangorestframework-simple-apikey: https://www.piwheels.org/simple/djangorestframework-simple-apikey/djangorestframework_simple_apikey-0.0.1-py2.py3-none-any.whl#sha256=25e520832019bbd8d8fa950c181877208113391461f6b529f01280cf52a01f7f (from https://www.piwheels.org/simple/djangorestframework-simple-apikey/) 2023-09-29T09:34:43,335 Skipping link: not a file: https://www.piwheels.org/simple/djangorestframework-simple-apikey/ 2023-09-29T09:34:43,336 Skipping link: not a file: https://pypi.org/simple/djangorestframework-simple-apikey/ 2023-09-29T09:34:43,355 Given no hashes to check 1 links for project 'djangorestframework-simple-apikey': discarding no candidates 2023-09-29T09:34:43,373 Collecting djangorestframework-simple-apikey==1.0.2 2023-09-29T09:34:43,375 Created temporary directory: /tmp/pip-unpack-9rbye71p 2023-09-29T09:34:43,587 Downloading djangorestframework-simple-apikey-1.0.2.tar.gz (17 kB) 2023-09-29T09:34:43,669 Added djangorestframework-simple-apikey==1.0.2 from https://files.pythonhosted.org/packages/8c/83/ff96c2511516e457deb3c8c2f383950453c87f3b2407f8c65860b4148558/djangorestframework-simple-apikey-1.0.2.tar.gz to build tracker '/tmp/pip-build-tracker-tbnyz_rd' 2023-09-29T09:34:43,673 Created temporary directory: /tmp/pip-build-env-m1z91qmy 2023-09-29T09:34:43,678 Installing build dependencies: started 2023-09-29T09:34:43,680 Running command pip subprocess to install build dependencies 2023-09-29T09:34:44,817 Using pip 23.2.1 from /usr/local/lib/python3.11/dist-packages/pip (python 3.11) 2023-09-29T09:34:45,310 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-09-29T09:34:46,843 Collecting setuptools>=61.0.0 2023-09-29T09:34:46,908 Using cached https://www.piwheels.org/simple/setuptools/setuptools-68.2.2-py3-none-any.whl (807 kB) 2023-09-29T09:34:47,150 Collecting wheel 2023-09-29T09:34:47,165 Using cached https://www.piwheels.org/simple/wheel/wheel-0.41.2-py3-none-any.whl (64 kB) 2023-09-29T09:34:49,721 Installing collected packages: wheel, setuptools 2023-09-29T09:34:49,947 Creating /tmp/pip-build-env-m1z91qmy/overlay/local/bin 2023-09-29T09:34:49,949 changing mode of /tmp/pip-build-env-m1z91qmy/overlay/local/bin/wheel to 755 2023-09-29T09:34:52,245 Successfully installed setuptools-68.2.2 wheel-0.41.2 2023-09-29T09:34:52,728 Installing build dependencies: finished with status 'done' 2023-09-29T09:34:52,731 Getting requirements to build wheel: started 2023-09-29T09:34:52,733 Running command Getting requirements to build wheel 2023-09-29T09:34:53,351 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `description` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:53,351 !! 2023-09-29T09:34:53,352 ******************************************************************************** 2023-09-29T09:34:53,352 ########################################################################## 2023-09-29T09:34:53,353 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:53,353 ########################################################################## 2023-09-29T09:34:53,354 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:53,355 `description = 'API Key authentication and permissions for Django REST.'` 2023-09-29T09:34:53,356 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:53,357 consider this value unless `description` is listed as `dynamic`. 2023-09-29T09:34:53,358 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:53,359 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:53,359 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:53,359 follow strictly the standard. 2023-09-29T09:34:53,360 To prevent this warning, you can list `description` under `dynamic` or alternatively 2023-09-29T09:34:53,361 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:53,362 configuration. 2023-09-29T09:34:53,363 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:53,363 or your builds will no longer be supported. 2023-09-29T09:34:53,364 ******************************************************************************** 2023-09-29T09:34:53,365 !! 2023-09-29T09:34:53,365 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:53,366 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `readme` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:53,367 !! 2023-09-29T09:34:53,368 ******************************************************************************** 2023-09-29T09:34:53,368 ########################################################################## 2023-09-29T09:34:53,369 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:53,370 ########################################################################## 2023-09-29T09:34:53,371 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:53,372 `readme = '# Django REST Framework Simple API Key π\n\nDjango REST Framework Simple API Key is a fast and secure API Key authentication plugin for REST API built with [Django Rest Framework](https://www.django-rest-framework.org/).\n\n
\n\nFor the full documentation, visit [https://djangorestframework-simple-apikey.readthedocs.io/en/latest/](https://djangorestframework-simple-apikey.readthedocs.io/en/latest/).\n\n## Introduction\n\nDjango REST Simple Api Key is a package built upon Django, Django REST Framework, and the fernet cryptography module to generate, encrypt, and decrypt API keys. It provides fast, secure and customizable API Key authentication.\n\n### Benefits\n\nWhy should you use this package for your API Key authentication?\n\n* β‘**οΈFast**: We use the [fernet](https://cryptography.io/en/latest/fernet/) cryptography module to generate, encrypt, and decrypt API keys. Besides the security facade, it is blazing fast allowing you to treat requests quickly and easily.\n \n* π **Secure**: Fernet guarantees that a message encrypted using it cannot be manipulated or read without the key, which we call `FERNET_KEY`. As long as you treat the fernet key at the same level you treat the Django `SECRET_KEY` setting, you are good to go.\n \n* π§ **Customizable**: The models, authentication backend, and permissions classes can be rewritten and fit your needs. We do our best to extend Django classes and methods, so you can easily extend our classes and methods.π Your Api Key authentication settings are kept in a single configuration dictionary named `SIMPLE_API_KEY` in the `settings.py` file of your Django project. It can be customized to fit your project needs.\n \n\n## Quickstart\n\n1 - Install with `pip`:\n\n```bash\npip install djangorestframework-simple-apikey\n```\n\n2 - Register the app in the `INSTALLED_APPS` in the `settings.py` file:\n\n```python\n# settings.py\n\nINSTALLED_APPS = [\n # ...\n "rest_framework",\n "rest_framework_simple_api_key",\n]\n```\n\n3- Add the `FERNET_KEY` setting in your `SIMPLE_API_KEY` configuration dictionary. You can easily generate a fernet key using the `python manage.py generate_fernet_key` command. Keep in mind that the fernet key plays a huge role in the api key authentication system.\n\n```python\nSIMPLE_API_KEY = {\n "FERNET_SECRET": "sVjomf7FFy351xRxDeJWFJAZaE2tG3MTuUv92TLFfOA="\n}\n```\n\n4 - Run migrations:\n\n```bash\npython manage.py migrate\n```\n\nIn your view then, you can add the authentication class and the permission class.\n\n> β οΈ **Important Note**: By default, authentication is performed using the `AUTH_USER_MODEL` specified in the settings.py file.\n\n```python\nfrom rest_framework import viewsets\n\nfrom rest_framework_simple_api_key.backends import APIKeyAuthentication\nfrom rest_framework.response import Response\n\nclass FruitViewSets(viewsets.ViewSet):\n http_method_names = ["get"]\n authentication_classes = (APIKeyAuthentication, )\n\n def list(self, request):\n return Response([{"detail": True}], 200 )\n```\n\n## Generate a Fernet Key\nWe\'ve made it easier for you by creating a custom Django command to quickly generate a fernet key, which is a **crucial component** in the authentication system. Make sure to keep the key secure and store it somewhere safely (ie: environment variable). \n\n**Important βοΈ** : You should treat the `FERNET_KEY` security at the same level as the Django `SECRET_KEY`. π«‘\n\nTo generate the fernet key use the following command:\n\n```python\npython manage.py generate_fernet_key\n```\n\n## Rotation\n\nWe implement an API key rotation strategy for this package. To learn more about it, refer to the documentation at https://djangorestframework-simple-apikey.readthedocs.io/en/latest/rotation.html.\n\n## Demo\n\nYou can find a demo in project in the `example` directory. To run the project, you can :\n\n```shell\ncd example\npip install -r requirements.txt\n\npython manage.py migrate\npython manage.py runserver\n```\n\n## Changelog\n\nSee [CHANGELOG.md](https://github.com/koladev32/djangorestframework-simple-apikey/blob/main/CHANGELOG.md).\n\n## Contributing\n\nThank you for your interest in contributing to the project! Here\'s a guide to help you get started:\n\n- **Setup Development Environment:** \n ```bash\n git clone https://github.com/koladev32/djangorestframework-simple-apikey.git\n ``` \n Use the command below to set up your environment:\n ```\n make install\n ```\n\n- **Format the Code:** \n Before submitting any code, please ensure it is formatted according to our standards:\n ```\n make format\n ```\n\n- **Check Code and Migrations:** \n Validate your changes against our checks:\n ```\n make check\n ```\n\n- **Run Migrations:** \n If your changes include database migrations, run the following:\n ```\n make migrations\n ```\n\n- **Run Tests:** \n Always make sure your changes pass all our tests:\n ```\n make test\n ```\n\nSee [CONTRIBUTING.md](https://github.com/koladev32/djangorestframework-simple-apikey/blob/main/CONTRIBUTING.md).'` 2023-09-29T09:34:53,374 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:53,375 consider this value unless `readme` is listed as `dynamic`. 2023-09-29T09:34:53,376 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:53,377 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:53,377 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:53,377 follow strictly the standard. 2023-09-29T09:34:53,378 To prevent this warning, you can list `readme` under `dynamic` or alternatively 2023-09-29T09:34:53,379 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:53,379 configuration. 2023-09-29T09:34:53,380 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:53,381 or your builds will no longer be supported. 2023-09-29T09:34:53,381 ******************************************************************************** 2023-09-29T09:34:53,382 !! 2023-09-29T09:34:53,382 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:53,383 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `license` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:53,384 !! 2023-09-29T09:34:53,385 ******************************************************************************** 2023-09-29T09:34:53,385 ########################################################################## 2023-09-29T09:34:53,386 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:53,387 ########################################################################## 2023-09-29T09:34:53,388 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:53,389 `license = 'MIT'` 2023-09-29T09:34:53,391 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:53,391 consider this value unless `license` is listed as `dynamic`. 2023-09-29T09:34:53,392 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:53,393 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:53,394 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:53,395 follow strictly the standard. 2023-09-29T09:34:53,396 To prevent this warning, you can list `license` under `dynamic` or alternatively 2023-09-29T09:34:53,396 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:53,397 configuration. 2023-09-29T09:34:53,398 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:53,399 or your builds will no longer be supported. 2023-09-29T09:34:53,400 ******************************************************************************** 2023-09-29T09:34:53,401 !! 2023-09-29T09:34:53,402 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:53,402 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `authors` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:53,403 !! 2023-09-29T09:34:53,404 ******************************************************************************** 2023-09-29T09:34:53,404 ########################################################################## 2023-09-29T09:34:53,405 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:53,405 ########################################################################## 2023-09-29T09:34:53,406 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:53,407 `authors = 'Kolawole Mangabo'` 2023-09-29T09:34:53,408 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:53,408 consider this value unless `authors` is listed as `dynamic`. 2023-09-29T09:34:53,409 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:53,410 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:53,411 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:53,411 follow strictly the standard. 2023-09-29T09:34:53,412 To prevent this warning, you can list `authors` under `dynamic` or alternatively 2023-09-29T09:34:53,412 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:53,413 configuration. 2023-09-29T09:34:53,414 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:53,415 or your builds will no longer be supported. 2023-09-29T09:34:53,416 ******************************************************************************** 2023-09-29T09:34:53,417 !! 2023-09-29T09:34:53,417 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:53,418 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `classifiers` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:53,419 !! 2023-09-29T09:34:53,420 ******************************************************************************** 2023-09-29T09:34:53,420 ########################################################################## 2023-09-29T09:34:53,421 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:53,422 ########################################################################## 2023-09-29T09:34:53,423 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:53,424 `classifiers = ['Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: Implementation :: PyPy', 'Topic :: Software Development :: Libraries :: Python Modules']` 2023-09-29T09:34:53,425 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:53,426 consider this value unless `classifiers` is listed as `dynamic`. 2023-09-29T09:34:53,427 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:53,428 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:53,429 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:53,429 follow strictly the standard. 2023-09-29T09:34:53,431 To prevent this warning, you can list `classifiers` under `dynamic` or alternatively 2023-09-29T09:34:53,431 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:53,432 configuration. 2023-09-29T09:34:53,433 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:53,433 or your builds will no longer be supported. 2023-09-29T09:34:53,434 ******************************************************************************** 2023-09-29T09:34:53,435 !! 2023-09-29T09:34:53,435 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:53,435 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `dependencies` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:53,436 !! 2023-09-29T09:34:53,437 ******************************************************************************** 2023-09-29T09:34:53,437 ########################################################################## 2023-09-29T09:34:53,437 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:53,438 ########################################################################## 2023-09-29T09:34:53,439 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:53,440 `dependencies = ['django >= 4.2', 'djangorestframework >= 3.14.0', 'cryptography >= 38.0.4']` 2023-09-29T09:34:53,440 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:53,441 consider this value unless `dependencies` is listed as `dynamic`. 2023-09-29T09:34:53,442 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:53,443 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:53,443 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:53,444 follow strictly the standard. 2023-09-29T09:34:53,445 To prevent this warning, you can list `dependencies` under `dynamic` or alternatively 2023-09-29T09:34:53,446 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:53,446 configuration. 2023-09-29T09:34:53,448 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:53,448 or your builds will no longer be supported. 2023-09-29T09:34:53,449 ******************************************************************************** 2023-09-29T09:34:53,450 !! 2023-09-29T09:34:53,451 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:53,451 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `optional-dependencies` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:53,452 !! 2023-09-29T09:34:53,453 ******************************************************************************** 2023-09-29T09:34:53,454 ########################################################################## 2023-09-29T09:34:53,454 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:53,455 ########################################################################## 2023-09-29T09:34:53,456 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:53,457 `optional-dependencies = {'test': ['pytest', 'coverage', 'pytest-django'], 'tooling': ['black == 22.3.0', 'pylint', 'bump2version']}` 2023-09-29T09:34:53,458 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:53,459 consider this value unless `optional-dependencies` is listed as `dynamic`. 2023-09-29T09:34:53,460 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:53,461 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:53,461 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:53,462 follow strictly the standard. 2023-09-29T09:34:53,463 To prevent this warning, you can list `optional-dependencies` under `dynamic` or alternatively 2023-09-29T09:34:53,463 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:53,463 configuration. 2023-09-29T09:34:53,464 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:53,465 or your builds will no longer be supported. 2023-09-29T09:34:53,465 ******************************************************************************** 2023-09-29T09:34:53,466 !! 2023-09-29T09:34:53,466 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:53,667 running egg_info 2023-09-29T09:34:53,672 writing djangorestframework_simple_apikey.egg-info/PKG-INFO 2023-09-29T09:34:53,677 writing dependency_links to djangorestframework_simple_apikey.egg-info/dependency_links.txt 2023-09-29T09:34:53,680 writing requirements to djangorestframework_simple_apikey.egg-info/requires.txt 2023-09-29T09:34:53,681 writing top-level names to djangorestframework_simple_apikey.egg-info/top_level.txt 2023-09-29T09:34:53,698 reading manifest file 'djangorestframework_simple_apikey.egg-info/SOURCES.txt' 2023-09-29T09:34:53,701 adding license file 'LICENSE' 2023-09-29T09:34:53,704 writing manifest file 'djangorestframework_simple_apikey.egg-info/SOURCES.txt' 2023-09-29T09:34:53,822 Getting requirements to build wheel: finished with status 'done' 2023-09-29T09:34:53,832 Created temporary directory: /tmp/pip-modern-metadata-2zfnn8je 2023-09-29T09:34:53,835 Preparing metadata (pyproject.toml): started 2023-09-29T09:34:53,836 Running command Preparing metadata (pyproject.toml) 2023-09-29T09:34:54,360 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `description` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:54,360 !! 2023-09-29T09:34:54,361 ******************************************************************************** 2023-09-29T09:34:54,362 ########################################################################## 2023-09-29T09:34:54,363 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:54,363 ########################################################################## 2023-09-29T09:34:54,364 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:54,366 `description = 'API Key authentication and permissions for Django REST.'` 2023-09-29T09:34:54,367 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:54,367 consider this value unless `description` is listed as `dynamic`. 2023-09-29T09:34:54,368 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:54,370 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:54,370 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:54,371 follow strictly the standard. 2023-09-29T09:34:54,372 To prevent this warning, you can list `description` under `dynamic` or alternatively 2023-09-29T09:34:54,372 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:54,373 configuration. 2023-09-29T09:34:54,374 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:54,375 or your builds will no longer be supported. 2023-09-29T09:34:54,375 ******************************************************************************** 2023-09-29T09:34:54,377 !! 2023-09-29T09:34:54,377 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:54,378 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `readme` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:54,378 !! 2023-09-29T09:34:54,379 ******************************************************************************** 2023-09-29T09:34:54,380 ########################################################################## 2023-09-29T09:34:54,380 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:54,380 ########################################################################## 2023-09-29T09:34:54,381 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:54,382 `readme = '# Django REST Framework Simple API Key π\n\nDjango REST Framework Simple API Key is a fast and secure API Key authentication plugin for REST API built with [Django Rest Framework](https://www.django-rest-framework.org/).\n\n\n\nFor the full documentation, visit [https://djangorestframework-simple-apikey.readthedocs.io/en/latest/](https://djangorestframework-simple-apikey.readthedocs.io/en/latest/).\n\n## Introduction\n\nDjango REST Simple Api Key is a package built upon Django, Django REST Framework, and the fernet cryptography module to generate, encrypt, and decrypt API keys. It provides fast, secure and customizable API Key authentication.\n\n### Benefits\n\nWhy should you use this package for your API Key authentication?\n\n* β‘**οΈFast**: We use the [fernet](https://cryptography.io/en/latest/fernet/) cryptography module to generate, encrypt, and decrypt API keys. Besides the security facade, it is blazing fast allowing you to treat requests quickly and easily.\n \n* π **Secure**: Fernet guarantees that a message encrypted using it cannot be manipulated or read without the key, which we call `FERNET_KEY`. As long as you treat the fernet key at the same level you treat the Django `SECRET_KEY` setting, you are good to go.\n \n* π§ **Customizable**: The models, authentication backend, and permissions classes can be rewritten and fit your needs. We do our best to extend Django classes and methods, so you can easily extend our classes and methods.π Your Api Key authentication settings are kept in a single configuration dictionary named `SIMPLE_API_KEY` in the `settings.py` file of your Django project. It can be customized to fit your project needs.\n \n\n## Quickstart\n\n1 - Install with `pip`:\n\n```bash\npip install djangorestframework-simple-apikey\n```\n\n2 - Register the app in the `INSTALLED_APPS` in the `settings.py` file:\n\n```python\n# settings.py\n\nINSTALLED_APPS = [\n # ...\n "rest_framework",\n "rest_framework_simple_api_key",\n]\n```\n\n3- Add the `FERNET_KEY` setting in your `SIMPLE_API_KEY` configuration dictionary. You can easily generate a fernet key using the `python manage.py generate_fernet_key` command. Keep in mind that the fernet key plays a huge role in the api key authentication system.\n\n```python\nSIMPLE_API_KEY = {\n "FERNET_SECRET": "sVjomf7FFy351xRxDeJWFJAZaE2tG3MTuUv92TLFfOA="\n}\n```\n\n4 - Run migrations:\n\n```bash\npython manage.py migrate\n```\n\nIn your view then, you can add the authentication class and the permission class.\n\n> β οΈ **Important Note**: By default, authentication is performed using the `AUTH_USER_MODEL` specified in the settings.py file.\n\n```python\nfrom rest_framework import viewsets\n\nfrom rest_framework_simple_api_key.backends import APIKeyAuthentication\nfrom rest_framework.response import Response\n\nclass FruitViewSets(viewsets.ViewSet):\n http_method_names = ["get"]\n authentication_classes = (APIKeyAuthentication, )\n\n def list(self, request):\n return Response([{"detail": True}], 200 )\n```\n\n## Generate a Fernet Key\nWe\'ve made it easier for you by creating a custom Django command to quickly generate a fernet key, which is a **crucial component** in the authentication system. Make sure to keep the key secure and store it somewhere safely (ie: environment variable). \n\n**Important βοΈ** : You should treat the `FERNET_KEY` security at the same level as the Django `SECRET_KEY`. π«‘\n\nTo generate the fernet key use the following command:\n\n```python\npython manage.py generate_fernet_key\n```\n\n## Rotation\n\nWe implement an API key rotation strategy for this package. To learn more about it, refer to the documentation at https://djangorestframework-simple-apikey.readthedocs.io/en/latest/rotation.html.\n\n## Demo\n\nYou can find a demo in project in the `example` directory. To run the project, you can :\n\n```shell\ncd example\npip install -r requirements.txt\n\npython manage.py migrate\npython manage.py runserver\n```\n\n## Changelog\n\nSee [CHANGELOG.md](https://github.com/koladev32/djangorestframework-simple-apikey/blob/main/CHANGELOG.md).\n\n## Contributing\n\nThank you for your interest in contributing to the project! Here\'s a guide to help you get started:\n\n- **Setup Development Environment:** \n ```bash\n git clone https://github.com/koladev32/djangorestframework-simple-apikey.git\n ``` \n Use the command below to set up your environment:\n ```\n make install\n ```\n\n- **Format the Code:** \n Before submitting any code, please ensure it is formatted according to our standards:\n ```\n make format\n ```\n\n- **Check Code and Migrations:** \n Validate your changes against our checks:\n ```\n make check\n ```\n\n- **Run Migrations:** \n If your changes include database migrations, run the following:\n ```\n make migrations\n ```\n\n- **Run Tests:** \n Always make sure your changes pass all our tests:\n ```\n make test\n ```\n\nSee [CONTRIBUTING.md](https://github.com/koladev32/djangorestframework-simple-apikey/blob/main/CONTRIBUTING.md).'` 2023-09-29T09:34:54,384 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:54,385 consider this value unless `readme` is listed as `dynamic`. 2023-09-29T09:34:54,386 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:54,387 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:54,388 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:54,389 follow strictly the standard. 2023-09-29T09:34:54,390 To prevent this warning, you can list `readme` under `dynamic` or alternatively 2023-09-29T09:34:54,391 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:54,391 configuration. 2023-09-29T09:34:54,392 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:54,393 or your builds will no longer be supported. 2023-09-29T09:34:54,394 ******************************************************************************** 2023-09-29T09:34:54,395 !! 2023-09-29T09:34:54,396 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:54,397 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `license` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:54,397 !! 2023-09-29T09:34:54,398 ******************************************************************************** 2023-09-29T09:34:54,399 ########################################################################## 2023-09-29T09:34:54,400 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:54,401 ########################################################################## 2023-09-29T09:34:54,402 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:54,403 `license = 'MIT'` 2023-09-29T09:34:54,404 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:54,404 consider this value unless `license` is listed as `dynamic`. 2023-09-29T09:34:54,405 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:54,406 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:54,407 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:54,407 follow strictly the standard. 2023-09-29T09:34:54,408 To prevent this warning, you can list `license` under `dynamic` or alternatively 2023-09-29T09:34:54,409 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:54,409 configuration. 2023-09-29T09:34:54,410 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:54,411 or your builds will no longer be supported. 2023-09-29T09:34:54,411 ******************************************************************************** 2023-09-29T09:34:54,412 !! 2023-09-29T09:34:54,413 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:54,413 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `authors` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:54,414 !! 2023-09-29T09:34:54,415 ******************************************************************************** 2023-09-29T09:34:54,416 ########################################################################## 2023-09-29T09:34:54,417 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:54,417 ########################################################################## 2023-09-29T09:34:54,419 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:54,420 `authors = 'Kolawole Mangabo'` 2023-09-29T09:34:54,421 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:54,421 consider this value unless `authors` is listed as `dynamic`. 2023-09-29T09:34:54,422 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:54,424 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:54,424 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:54,425 follow strictly the standard. 2023-09-29T09:34:54,426 To prevent this warning, you can list `authors` under `dynamic` or alternatively 2023-09-29T09:34:54,427 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:54,427 configuration. 2023-09-29T09:34:54,428 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:54,429 or your builds will no longer be supported. 2023-09-29T09:34:54,429 ******************************************************************************** 2023-09-29T09:34:54,430 !! 2023-09-29T09:34:54,431 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:54,432 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `classifiers` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:54,432 !! 2023-09-29T09:34:54,433 ******************************************************************************** 2023-09-29T09:34:54,434 ########################################################################## 2023-09-29T09:34:54,434 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:54,435 ########################################################################## 2023-09-29T09:34:54,436 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:54,437 `classifiers = ['Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: Implementation :: PyPy', 'Topic :: Software Development :: Libraries :: Python Modules']` 2023-09-29T09:34:54,438 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:54,438 consider this value unless `classifiers` is listed as `dynamic`. 2023-09-29T09:34:54,439 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:54,441 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:54,441 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:54,442 follow strictly the standard. 2023-09-29T09:34:54,443 To prevent this warning, you can list `classifiers` under `dynamic` or alternatively 2023-09-29T09:34:54,443 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:54,444 configuration. 2023-09-29T09:34:54,445 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:54,445 or your builds will no longer be supported. 2023-09-29T09:34:54,446 ******************************************************************************** 2023-09-29T09:34:54,447 !! 2023-09-29T09:34:54,448 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:54,448 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `dependencies` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:54,449 !! 2023-09-29T09:34:54,450 ******************************************************************************** 2023-09-29T09:34:54,450 ########################################################################## 2023-09-29T09:34:54,451 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:54,452 ########################################################################## 2023-09-29T09:34:54,453 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:54,454 `dependencies = ['django >= 4.2', 'djangorestframework >= 3.14.0', 'cryptography >= 38.0.4']` 2023-09-29T09:34:54,455 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:54,456 consider this value unless `dependencies` is listed as `dynamic`. 2023-09-29T09:34:54,457 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:54,458 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:54,458 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:54,459 follow strictly the standard. 2023-09-29T09:34:54,461 To prevent this warning, you can list `dependencies` under `dynamic` or alternatively 2023-09-29T09:34:54,461 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:54,462 configuration. 2023-09-29T09:34:54,463 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:54,464 or your builds will no longer be supported. 2023-09-29T09:34:54,464 ******************************************************************************** 2023-09-29T09:34:54,465 !! 2023-09-29T09:34:54,466 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:54,466 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `optional-dependencies` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:54,467 !! 2023-09-29T09:34:54,467 ******************************************************************************** 2023-09-29T09:34:54,468 ########################################################################## 2023-09-29T09:34:54,468 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:54,469 ########################################################################## 2023-09-29T09:34:54,470 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:54,471 `optional-dependencies = {'test': ['pytest', 'coverage', 'pytest-django'], 'tooling': ['black == 22.3.0', 'pylint', 'bump2version']}` 2023-09-29T09:34:54,472 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:54,472 consider this value unless `optional-dependencies` is listed as `dynamic`. 2023-09-29T09:34:54,473 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:54,474 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:54,475 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:54,475 follow strictly the standard. 2023-09-29T09:34:54,477 To prevent this warning, you can list `optional-dependencies` under `dynamic` or alternatively 2023-09-29T09:34:54,477 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:54,478 configuration. 2023-09-29T09:34:54,479 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:54,480 or your builds will no longer be supported. 2023-09-29T09:34:54,481 ******************************************************************************** 2023-09-29T09:34:54,484 !! 2023-09-29T09:34:54,484 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:54,657 running dist_info 2023-09-29T09:34:54,661 creating /tmp/pip-modern-metadata-2zfnn8je/djangorestframework_simple_apikey.egg-info 2023-09-29T09:34:54,665 writing /tmp/pip-modern-metadata-2zfnn8je/djangorestframework_simple_apikey.egg-info/PKG-INFO 2023-09-29T09:34:54,671 writing dependency_links to /tmp/pip-modern-metadata-2zfnn8je/djangorestframework_simple_apikey.egg-info/dependency_links.txt 2023-09-29T09:34:54,674 writing requirements to /tmp/pip-modern-metadata-2zfnn8je/djangorestframework_simple_apikey.egg-info/requires.txt 2023-09-29T09:34:54,675 writing top-level names to /tmp/pip-modern-metadata-2zfnn8je/djangorestframework_simple_apikey.egg-info/top_level.txt 2023-09-29T09:34:54,677 writing manifest file '/tmp/pip-modern-metadata-2zfnn8je/djangorestframework_simple_apikey.egg-info/SOURCES.txt' 2023-09-29T09:34:54,692 reading manifest file '/tmp/pip-modern-metadata-2zfnn8je/djangorestframework_simple_apikey.egg-info/SOURCES.txt' 2023-09-29T09:34:54,694 adding license file 'LICENSE' 2023-09-29T09:34:54,696 writing manifest file '/tmp/pip-modern-metadata-2zfnn8je/djangorestframework_simple_apikey.egg-info/SOURCES.txt' 2023-09-29T09:34:54,698 creating '/tmp/pip-modern-metadata-2zfnn8je/djangorestframework_simple_apikey-1.0.2.dist-info' 2023-09-29T09:34:54,847 Preparing metadata (pyproject.toml): finished with status 'done' 2023-09-29T09:34:54,852 Source in /tmp/pip-wheel-yjotgrdj/djangorestframework-simple-apikey_3125d3839b24495790eb4b42b3eba7b8 has version 1.0.2, which satisfies requirement djangorestframework-simple-apikey==1.0.2 from https://files.pythonhosted.org/packages/8c/83/ff96c2511516e457deb3c8c2f383950453c87f3b2407f8c65860b4148558/djangorestframework-simple-apikey-1.0.2.tar.gz 2023-09-29T09:34:54,853 Removed djangorestframework-simple-apikey==1.0.2 from https://files.pythonhosted.org/packages/8c/83/ff96c2511516e457deb3c8c2f383950453c87f3b2407f8c65860b4148558/djangorestframework-simple-apikey-1.0.2.tar.gz from build tracker '/tmp/pip-build-tracker-tbnyz_rd' 2023-09-29T09:34:54,857 Created temporary directory: /tmp/pip-unpack-amuejdiu 2023-09-29T09:34:54,858 Created temporary directory: /tmp/pip-unpack-w_y23a4i 2023-09-29T09:34:54,880 Building wheels for collected packages: djangorestframework-simple-apikey 2023-09-29T09:34:54,885 Created temporary directory: /tmp/pip-wheel-h9o8qiav 2023-09-29T09:34:54,885 Destination directory: /tmp/pip-wheel-h9o8qiav 2023-09-29T09:34:54,887 Building wheel for djangorestframework-simple-apikey (pyproject.toml): started 2023-09-29T09:34:54,888 Running command Building wheel for djangorestframework-simple-apikey (pyproject.toml) 2023-09-29T09:34:55,395 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `description` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:55,395 !! 2023-09-29T09:34:55,396 ******************************************************************************** 2023-09-29T09:34:55,396 ########################################################################## 2023-09-29T09:34:55,397 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:55,398 ########################################################################## 2023-09-29T09:34:55,399 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:55,400 `description = 'API Key authentication and permissions for Django REST.'` 2023-09-29T09:34:55,401 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:55,402 consider this value unless `description` is listed as `dynamic`. 2023-09-29T09:34:55,404 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:55,405 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:55,405 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:55,406 follow strictly the standard. 2023-09-29T09:34:55,407 To prevent this warning, you can list `description` under `dynamic` or alternatively 2023-09-29T09:34:55,407 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:55,408 configuration. 2023-09-29T09:34:55,409 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:55,410 or your builds will no longer be supported. 2023-09-29T09:34:55,410 ******************************************************************************** 2023-09-29T09:34:55,412 !! 2023-09-29T09:34:55,412 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:55,413 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `readme` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:55,413 !! 2023-09-29T09:34:55,415 ******************************************************************************** 2023-09-29T09:34:55,415 ########################################################################## 2023-09-29T09:34:55,416 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:55,417 ########################################################################## 2023-09-29T09:34:55,418 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:55,419 `readme = '# Django REST Framework Simple API Key π\n\nDjango REST Framework Simple API Key is a fast and secure API Key authentication plugin for REST API built with [Django Rest Framework](https://www.django-rest-framework.org/).\n\n\n\nFor the full documentation, visit [https://djangorestframework-simple-apikey.readthedocs.io/en/latest/](https://djangorestframework-simple-apikey.readthedocs.io/en/latest/).\n\n## Introduction\n\nDjango REST Simple Api Key is a package built upon Django, Django REST Framework, and the fernet cryptography module to generate, encrypt, and decrypt API keys. It provides fast, secure and customizable API Key authentication.\n\n### Benefits\n\nWhy should you use this package for your API Key authentication?\n\n* β‘**οΈFast**: We use the [fernet](https://cryptography.io/en/latest/fernet/) cryptography module to generate, encrypt, and decrypt API keys. Besides the security facade, it is blazing fast allowing you to treat requests quickly and easily.\n \n* π **Secure**: Fernet guarantees that a message encrypted using it cannot be manipulated or read without the key, which we call `FERNET_KEY`. As long as you treat the fernet key at the same level you treat the Django `SECRET_KEY` setting, you are good to go.\n \n* π§ **Customizable**: The models, authentication backend, and permissions classes can be rewritten and fit your needs. We do our best to extend Django classes and methods, so you can easily extend our classes and methods.π Your Api Key authentication settings are kept in a single configuration dictionary named `SIMPLE_API_KEY` in the `settings.py` file of your Django project. It can be customized to fit your project needs.\n \n\n## Quickstart\n\n1 - Install with `pip`:\n\n```bash\npip install djangorestframework-simple-apikey\n```\n\n2 - Register the app in the `INSTALLED_APPS` in the `settings.py` file:\n\n```python\n# settings.py\n\nINSTALLED_APPS = [\n # ...\n "rest_framework",\n "rest_framework_simple_api_key",\n]\n```\n\n3- Add the `FERNET_KEY` setting in your `SIMPLE_API_KEY` configuration dictionary. You can easily generate a fernet key using the `python manage.py generate_fernet_key` command. Keep in mind that the fernet key plays a huge role in the api key authentication system.\n\n```python\nSIMPLE_API_KEY = {\n "FERNET_SECRET": "sVjomf7FFy351xRxDeJWFJAZaE2tG3MTuUv92TLFfOA="\n}\n```\n\n4 - Run migrations:\n\n```bash\npython manage.py migrate\n```\n\nIn your view then, you can add the authentication class and the permission class.\n\n> β οΈ **Important Note**: By default, authentication is performed using the `AUTH_USER_MODEL` specified in the settings.py file.\n\n```python\nfrom rest_framework import viewsets\n\nfrom rest_framework_simple_api_key.backends import APIKeyAuthentication\nfrom rest_framework.response import Response\n\nclass FruitViewSets(viewsets.ViewSet):\n http_method_names = ["get"]\n authentication_classes = (APIKeyAuthentication, )\n\n def list(self, request):\n return Response([{"detail": True}], 200 )\n```\n\n## Generate a Fernet Key\nWe\'ve made it easier for you by creating a custom Django command to quickly generate a fernet key, which is a **crucial component** in the authentication system. Make sure to keep the key secure and store it somewhere safely (ie: environment variable). \n\n**Important βοΈ** : You should treat the `FERNET_KEY` security at the same level as the Django `SECRET_KEY`. π«‘\n\nTo generate the fernet key use the following command:\n\n```python\npython manage.py generate_fernet_key\n```\n\n## Rotation\n\nWe implement an API key rotation strategy for this package. To learn more about it, refer to the documentation at https://djangorestframework-simple-apikey.readthedocs.io/en/latest/rotation.html.\n\n## Demo\n\nYou can find a demo in project in the `example` directory. To run the project, you can :\n\n```shell\ncd example\npip install -r requirements.txt\n\npython manage.py migrate\npython manage.py runserver\n```\n\n## Changelog\n\nSee [CHANGELOG.md](https://github.com/koladev32/djangorestframework-simple-apikey/blob/main/CHANGELOG.md).\n\n## Contributing\n\nThank you for your interest in contributing to the project! Here\'s a guide to help you get started:\n\n- **Setup Development Environment:** \n ```bash\n git clone https://github.com/koladev32/djangorestframework-simple-apikey.git\n ``` \n Use the command below to set up your environment:\n ```\n make install\n ```\n\n- **Format the Code:** \n Before submitting any code, please ensure it is formatted according to our standards:\n ```\n make format\n ```\n\n- **Check Code and Migrations:** \n Validate your changes against our checks:\n ```\n make check\n ```\n\n- **Run Migrations:** \n If your changes include database migrations, run the following:\n ```\n make migrations\n ```\n\n- **Run Tests:** \n Always make sure your changes pass all our tests:\n ```\n make test\n ```\n\nSee [CONTRIBUTING.md](https://github.com/koladev32/djangorestframework-simple-apikey/blob/main/CONTRIBUTING.md).'` 2023-09-29T09:34:55,421 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:55,421 consider this value unless `readme` is listed as `dynamic`. 2023-09-29T09:34:55,422 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:55,423 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:55,424 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:55,425 follow strictly the standard. 2023-09-29T09:34:55,426 To prevent this warning, you can list `readme` under `dynamic` or alternatively 2023-09-29T09:34:55,427 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:55,427 configuration. 2023-09-29T09:34:55,428 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:55,429 or your builds will no longer be supported. 2023-09-29T09:34:55,430 ******************************************************************************** 2023-09-29T09:34:55,431 !! 2023-09-29T09:34:55,432 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:55,433 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `license` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:55,433 !! 2023-09-29T09:34:55,434 ******************************************************************************** 2023-09-29T09:34:55,435 ########################################################################## 2023-09-29T09:34:55,435 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:55,436 ########################################################################## 2023-09-29T09:34:55,437 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:55,439 `license = 'MIT'` 2023-09-29T09:34:55,440 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:55,441 consider this value unless `license` is listed as `dynamic`. 2023-09-29T09:34:55,442 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:55,443 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:55,443 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:55,444 follow strictly the standard. 2023-09-29T09:34:55,445 To prevent this warning, you can list `license` under `dynamic` or alternatively 2023-09-29T09:34:55,445 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:55,446 configuration. 2023-09-29T09:34:55,447 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:55,447 or your builds will no longer be supported. 2023-09-29T09:34:55,448 ******************************************************************************** 2023-09-29T09:34:55,449 !! 2023-09-29T09:34:55,449 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:55,450 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `authors` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:55,450 !! 2023-09-29T09:34:55,451 ******************************************************************************** 2023-09-29T09:34:55,451 ########################################################################## 2023-09-29T09:34:55,452 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:55,452 ########################################################################## 2023-09-29T09:34:55,454 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:55,455 `authors = 'Kolawole Mangabo'` 2023-09-29T09:34:55,456 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:55,456 consider this value unless `authors` is listed as `dynamic`. 2023-09-29T09:34:55,457 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:55,459 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:55,459 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:55,460 follow strictly the standard. 2023-09-29T09:34:55,461 To prevent this warning, you can list `authors` under `dynamic` or alternatively 2023-09-29T09:34:55,461 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:55,462 configuration. 2023-09-29T09:34:55,463 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:55,464 or your builds will no longer be supported. 2023-09-29T09:34:55,464 ******************************************************************************** 2023-09-29T09:34:55,465 !! 2023-09-29T09:34:55,466 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:55,466 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `classifiers` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:55,467 !! 2023-09-29T09:34:55,468 ******************************************************************************** 2023-09-29T09:34:55,469 ########################################################################## 2023-09-29T09:34:55,469 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:55,470 ########################################################################## 2023-09-29T09:34:55,471 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:55,472 `classifiers = ['Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: Implementation :: PyPy', 'Topic :: Software Development :: Libraries :: Python Modules']` 2023-09-29T09:34:55,474 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:55,474 consider this value unless `classifiers` is listed as `dynamic`. 2023-09-29T09:34:55,475 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:55,476 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:55,476 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:55,477 follow strictly the standard. 2023-09-29T09:34:55,478 To prevent this warning, you can list `classifiers` under `dynamic` or alternatively 2023-09-29T09:34:55,478 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:55,479 configuration. 2023-09-29T09:34:55,480 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:55,480 or your builds will no longer be supported. 2023-09-29T09:34:55,481 ******************************************************************************** 2023-09-29T09:34:55,482 !! 2023-09-29T09:34:55,482 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:55,483 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `dependencies` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:55,484 !! 2023-09-29T09:34:55,485 ******************************************************************************** 2023-09-29T09:34:55,486 ########################################################################## 2023-09-29T09:34:55,486 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:55,487 ########################################################################## 2023-09-29T09:34:55,488 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:55,489 `dependencies = ['django >= 4.2', 'djangorestframework >= 3.14.0', 'cryptography >= 38.0.4']` 2023-09-29T09:34:55,490 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:55,490 consider this value unless `dependencies` is listed as `dynamic`. 2023-09-29T09:34:55,492 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:55,493 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:55,493 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:55,494 follow strictly the standard. 2023-09-29T09:34:55,495 To prevent this warning, you can list `dependencies` under `dynamic` or alternatively 2023-09-29T09:34:55,496 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:55,496 configuration. 2023-09-29T09:34:55,497 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:55,498 or your builds will no longer be supported. 2023-09-29T09:34:55,499 ******************************************************************************** 2023-09-29T09:34:55,500 !! 2023-09-29T09:34:55,500 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:55,501 /tmp/pip-build-env-m1z91qmy/overlay/local/lib/python3.11/dist-packages/setuptools/config/_apply_pyprojecttoml.py:73: _WouldIgnoreField: `optional-dependencies` defined outside of `pyproject.toml` would be ignored. 2023-09-29T09:34:55,501 !! 2023-09-29T09:34:55,503 ******************************************************************************** 2023-09-29T09:34:55,503 ########################################################################## 2023-09-29T09:34:55,504 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-09-29T09:34:55,504 ########################################################################## 2023-09-29T09:34:55,505 The following seems to be defined outside of `pyproject.toml`: 2023-09-29T09:34:55,506 `optional-dependencies = {'test': ['pytest', 'coverage', 'pytest-django'], 'tooling': ['black == 22.3.0', 'pylint', 'bump2version']}` 2023-09-29T09:34:55,507 According to the spec (see the link below), however, setuptools CANNOT 2023-09-29T09:34:55,508 consider this value unless `optional-dependencies` is listed as `dynamic`. 2023-09-29T09:34:55,509 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-09-29T09:34:55,510 For the time being, `setuptools` will still consider the given value (as a 2023-09-29T09:34:55,510 **transitional** measure), but please note that future releases of setuptools will 2023-09-29T09:34:55,511 follow strictly the standard. 2023-09-29T09:34:55,512 To prevent this warning, you can list `optional-dependencies` under `dynamic` or alternatively 2023-09-29T09:34:55,512 remove the `[project]` table from your file and rely entirely on other means of 2023-09-29T09:34:55,513 configuration. 2023-09-29T09:34:55,514 By 2023-Oct-30, you need to update your project and remove deprecated calls 2023-09-29T09:34:55,515 or your builds will no longer be supported. 2023-09-29T09:34:55,515 ******************************************************************************** 2023-09-29T09:34:55,516 !! 2023-09-29T09:34:55,517 _handle_missing_dynamic(dist, project_table) 2023-09-29T09:34:55,691 running bdist_wheel 2023-09-29T09:34:55,707 running build 2023-09-29T09:34:55,708 running build_py 2023-09-29T09:34:55,712 creating build 2023-09-29T09:34:55,713 creating build/lib 2023-09-29T09:34:55,714 creating build/lib/rest_framework_simple_api_key 2023-09-29T09:34:55,715 copying rest_framework_simple_api_key/__init__.py -> build/lib/rest_framework_simple_api_key 2023-09-29T09:34:55,717 copying rest_framework_simple_api_key/mutli_api_crypto.py -> build/lib/rest_framework_simple_api_key 2023-09-29T09:34:55,719 copying rest_framework_simple_api_key/apps.py -> build/lib/rest_framework_simple_api_key 2023-09-29T09:34:55,720 copying rest_framework_simple_api_key/version.py -> build/lib/rest_framework_simple_api_key 2023-09-29T09:34:55,722 copying rest_framework_simple_api_key/permissions.py -> build/lib/rest_framework_simple_api_key 2023-09-29T09:34:55,724 copying rest_framework_simple_api_key/crypto.py -> build/lib/rest_framework_simple_api_key 2023-09-29T09:34:55,726 copying rest_framework_simple_api_key/settings.py -> build/lib/rest_framework_simple_api_key 2023-09-29T09:34:55,727 copying rest_framework_simple_api_key/backends.py -> build/lib/rest_framework_simple_api_key 2023-09-29T09:34:55,729 copying rest_framework_simple_api_key/admin.py -> build/lib/rest_framework_simple_api_key 2023-09-29T09:34:55,731 copying rest_framework_simple_api_key/parser.py -> build/lib/rest_framework_simple_api_key 2023-09-29T09:34:55,733 copying rest_framework_simple_api_key/models.py -> build/lib/rest_framework_simple_api_key 2023-09-29T09:34:55,735 creating build/lib/rest_framework_simple_api_key/rotation 2023-09-29T09:34:55,736 copying rest_framework_simple_api_key/rotation/__init__.py -> build/lib/rest_framework_simple_api_key/rotation 2023-09-29T09:34:55,738 copying rest_framework_simple_api_key/rotation/apps.py -> build/lib/rest_framework_simple_api_key/rotation 2023-09-29T09:34:55,740 copying rest_framework_simple_api_key/rotation/admin.py -> build/lib/rest_framework_simple_api_key/rotation 2023-09-29T09:34:55,741 copying rest_framework_simple_api_key/rotation/utils.py -> build/lib/rest_framework_simple_api_key/rotation 2023-09-29T09:34:55,743 copying rest_framework_simple_api_key/rotation/models.py -> build/lib/rest_framework_simple_api_key/rotation 2023-09-29T09:34:55,745 creating build/lib/rest_framework_simple_api_key/migrations 2023-09-29T09:34:55,746 copying rest_framework_simple_api_key/migrations/__init__.py -> build/lib/rest_framework_simple_api_key/migrations 2023-09-29T09:34:55,747 copying rest_framework_simple_api_key/migrations/0001_initial.py -> build/lib/rest_framework_simple_api_key/migrations 2023-09-29T09:34:55,749 copying rest_framework_simple_api_key/migrations/0002_alter_apikey_options.py -> build/lib/rest_framework_simple_api_key/migrations 2023-09-29T09:34:55,751 creating build/lib/rest_framework_simple_api_key/management 2023-09-29T09:34:55,752 copying rest_framework_simple_api_key/management/__init__.py -> build/lib/rest_framework_simple_api_key/management 2023-09-29T09:34:55,754 creating build/lib/rest_framework_simple_api_key/rotation/migrations 2023-09-29T09:34:55,755 copying rest_framework_simple_api_key/rotation/migrations/__init__.py -> build/lib/rest_framework_simple_api_key/rotation/migrations 2023-09-29T09:34:55,756 copying rest_framework_simple_api_key/rotation/migrations/0001_initial.py -> build/lib/rest_framework_simple_api_key/rotation/migrations 2023-09-29T09:34:55,758 creating build/lib/rest_framework_simple_api_key/management/commands 2023-09-29T09:34:55,759 copying rest_framework_simple_api_key/management/commands/__init__.py -> build/lib/rest_framework_simple_api_key/management/commands 2023-09-29T09:34:55,761 copying rest_framework_simple_api_key/management/commands/generate_fernet_key.py -> build/lib/rest_framework_simple_api_key/management/commands 2023-09-29T09:34:55,763 copying rest_framework_simple_api_key/management/commands/rotation.py -> build/lib/rest_framework_simple_api_key/management/commands 2023-09-29T09:34:55,764 running egg_info 2023-09-29T09:34:55,768 writing djangorestframework_simple_apikey.egg-info/PKG-INFO 2023-09-29T09:34:55,773 writing dependency_links to djangorestframework_simple_apikey.egg-info/dependency_links.txt 2023-09-29T09:34:55,775 writing requirements to djangorestframework_simple_apikey.egg-info/requires.txt 2023-09-29T09:34:55,776 writing top-level names to djangorestframework_simple_apikey.egg-info/top_level.txt 2023-09-29T09:34:55,786 reading manifest file 'djangorestframework_simple_apikey.egg-info/SOURCES.txt' 2023-09-29T09:34:55,788 adding license file 'LICENSE' 2023-09-29T09:34:55,791 writing manifest file 'djangorestframework_simple_apikey.egg-info/SOURCES.txt' 2023-09-29T09:34:55,803 installing to build/bdist.linux-armv7l/wheel 2023-09-29T09:34:55,803 running install 2023-09-29T09:34:55,827 running install_lib 2023-09-29T09:34:55,831 creating build/bdist.linux-armv7l 2023-09-29T09:34:55,831 creating build/bdist.linux-armv7l/wheel 2023-09-29T09:34:55,833 creating build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key 2023-09-29T09:34:55,834 copying build/lib/rest_framework_simple_api_key/__init__.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key 2023-09-29T09:34:55,836 copying build/lib/rest_framework_simple_api_key/mutli_api_crypto.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key 2023-09-29T09:34:55,838 creating build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key/rotation 2023-09-29T09:34:55,839 copying build/lib/rest_framework_simple_api_key/rotation/__init__.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key/rotation 2023-09-29T09:34:55,840 copying build/lib/rest_framework_simple_api_key/rotation/apps.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key/rotation 2023-09-29T09:34:55,843 creating build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key/rotation/migrations 2023-09-29T09:34:55,844 copying build/lib/rest_framework_simple_api_key/rotation/migrations/__init__.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key/rotation/migrations 2023-09-29T09:34:55,845 copying build/lib/rest_framework_simple_api_key/rotation/migrations/0001_initial.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key/rotation/migrations 2023-09-29T09:34:55,847 copying build/lib/rest_framework_simple_api_key/rotation/admin.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key/rotation 2023-09-29T09:34:55,848 copying build/lib/rest_framework_simple_api_key/rotation/utils.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key/rotation 2023-09-29T09:34:55,850 copying build/lib/rest_framework_simple_api_key/rotation/models.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key/rotation 2023-09-29T09:34:55,852 copying build/lib/rest_framework_simple_api_key/apps.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key 2023-09-29T09:34:55,853 copying build/lib/rest_framework_simple_api_key/version.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key 2023-09-29T09:34:55,855 copying build/lib/rest_framework_simple_api_key/permissions.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key 2023-09-29T09:34:55,856 copying build/lib/rest_framework_simple_api_key/crypto.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key 2023-09-29T09:34:55,858 copying build/lib/rest_framework_simple_api_key/settings.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key 2023-09-29T09:34:55,860 copying build/lib/rest_framework_simple_api_key/backends.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key 2023-09-29T09:34:55,862 creating build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key/migrations 2023-09-29T09:34:55,862 copying build/lib/rest_framework_simple_api_key/migrations/__init__.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key/migrations 2023-09-29T09:34:55,864 copying build/lib/rest_framework_simple_api_key/migrations/0001_initial.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key/migrations 2023-09-29T09:34:55,866 copying build/lib/rest_framework_simple_api_key/migrations/0002_alter_apikey_options.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key/migrations 2023-09-29T09:34:55,867 copying build/lib/rest_framework_simple_api_key/admin.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key 2023-09-29T09:34:55,869 creating build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key/management 2023-09-29T09:34:55,870 copying build/lib/rest_framework_simple_api_key/management/__init__.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key/management 2023-09-29T09:34:55,872 creating build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key/management/commands 2023-09-29T09:34:55,873 copying build/lib/rest_framework_simple_api_key/management/commands/__init__.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key/management/commands 2023-09-29T09:34:55,874 copying build/lib/rest_framework_simple_api_key/management/commands/generate_fernet_key.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key/management/commands 2023-09-29T09:34:55,876 copying build/lib/rest_framework_simple_api_key/management/commands/rotation.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key/management/commands 2023-09-29T09:34:55,878 copying build/lib/rest_framework_simple_api_key/parser.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key 2023-09-29T09:34:55,880 copying build/lib/rest_framework_simple_api_key/models.py -> build/bdist.linux-armv7l/wheel/rest_framework_simple_api_key 2023-09-29T09:34:55,881 running install_egg_info 2023-09-29T09:34:55,885 Copying djangorestframework_simple_apikey.egg-info to build/bdist.linux-armv7l/wheel/djangorestframework_simple_apikey-1.0.2-py3.11.egg-info 2023-09-29T09:34:55,896 running install_scripts 2023-09-29T09:34:55,911 creating build/bdist.linux-armv7l/wheel/djangorestframework_simple_apikey-1.0.2.dist-info/WHEEL 2023-09-29T09:34:55,914 creating '/tmp/pip-wheel-h9o8qiav/.tmp-ob3d79xw/djangorestframework_simple_apikey-1.0.2-py2.py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it 2023-09-29T09:34:55,917 adding 'rest_framework_simple_api_key/__init__.py' 2023-09-29T09:34:55,918 adding 'rest_framework_simple_api_key/admin.py' 2023-09-29T09:34:55,919 adding 'rest_framework_simple_api_key/apps.py' 2023-09-29T09:34:55,920 adding 'rest_framework_simple_api_key/backends.py' 2023-09-29T09:34:55,922 adding 'rest_framework_simple_api_key/crypto.py' 2023-09-29T09:34:55,923 adding 'rest_framework_simple_api_key/models.py' 2023-09-29T09:34:55,924 adding 'rest_framework_simple_api_key/mutli_api_crypto.py' 2023-09-29T09:34:55,925 adding 'rest_framework_simple_api_key/parser.py' 2023-09-29T09:34:55,927 adding 'rest_framework_simple_api_key/permissions.py' 2023-09-29T09:34:55,928 adding 'rest_framework_simple_api_key/settings.py' 2023-09-29T09:34:55,929 adding 'rest_framework_simple_api_key/version.py' 2023-09-29T09:34:55,930 adding 'rest_framework_simple_api_key/management/__init__.py' 2023-09-29T09:34:55,932 adding 'rest_framework_simple_api_key/management/commands/__init__.py' 2023-09-29T09:34:55,933 adding 'rest_framework_simple_api_key/management/commands/generate_fernet_key.py' 2023-09-29T09:34:55,934 adding 'rest_framework_simple_api_key/management/commands/rotation.py' 2023-09-29T09:34:55,936 adding 'rest_framework_simple_api_key/migrations/0001_initial.py' 2023-09-29T09:34:55,937 adding 'rest_framework_simple_api_key/migrations/0002_alter_apikey_options.py' 2023-09-29T09:34:55,938 adding 'rest_framework_simple_api_key/migrations/__init__.py' 2023-09-29T09:34:55,939 adding 'rest_framework_simple_api_key/rotation/__init__.py' 2023-09-29T09:34:55,941 adding 'rest_framework_simple_api_key/rotation/admin.py' 2023-09-29T09:34:55,942 adding 'rest_framework_simple_api_key/rotation/apps.py' 2023-09-29T09:34:55,943 adding 'rest_framework_simple_api_key/rotation/models.py' 2023-09-29T09:34:55,944 adding 'rest_framework_simple_api_key/rotation/utils.py' 2023-09-29T09:34:55,946 adding 'rest_framework_simple_api_key/rotation/migrations/0001_initial.py' 2023-09-29T09:34:55,947 adding 'rest_framework_simple_api_key/rotation/migrations/__init__.py' 2023-09-29T09:34:55,949 adding 'djangorestframework_simple_apikey-1.0.2.dist-info/LICENSE' 2023-09-29T09:34:55,951 adding 'djangorestframework_simple_apikey-1.0.2.dist-info/METADATA' 2023-09-29T09:34:55,951 adding 'djangorestframework_simple_apikey-1.0.2.dist-info/WHEEL' 2023-09-29T09:34:55,952 adding 'djangorestframework_simple_apikey-1.0.2.dist-info/top_level.txt' 2023-09-29T09:34:55,953 adding 'djangorestframework_simple_apikey-1.0.2.dist-info/RECORD' 2023-09-29T09:34:55,955 removing build/bdist.linux-armv7l/wheel 2023-09-29T09:34:56,082 Building wheel for djangorestframework-simple-apikey (pyproject.toml): finished with status 'done' 2023-09-29T09:34:56,087 Created wheel for djangorestframework-simple-apikey: filename=djangorestframework_simple_apikey-1.0.2-py2.py3-none-any.whl size=22236 sha256=b9d1173405e5f477698b94004097dc016959033bdc848d2dfda11f9059be4769 2023-09-29T09:34:56,088 Stored in directory: /tmp/pip-ephem-wheel-cache-ry5mjr5_/wheels/2d/25/ff/9dc81b5f7a4726eac70880383ced862f41da470bcbc980403b 2023-09-29T09:34:56,100 Successfully built djangorestframework-simple-apikey 2023-09-29T09:34:56,104 Removed build tracker: '/tmp/pip-build-tracker-tbnyz_rd'