mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-05-10 02:43:41 +03:00
Merge 3542e40746
into 985dd732e0
This commit is contained in:
commit
ed98f86f74
|
@ -31,6 +31,9 @@ repos:
|
|||
hooks:
|
||||
- id: codespell
|
||||
exclude: locale|kickstarter-announcement.md|coreapi-0.1.1.js
|
||||
additional_dependencies:
|
||||
# python doesn't come with a toml parser prior to 3.11
|
||||
- "tomli; python_version < '3.11'"
|
||||
|
||||
- repo: https://github.com/asottile/pyupgrade
|
||||
rev: v3.19.1
|
||||
|
|
|
@ -59,8 +59,8 @@ The following template should be used for the description of the issue, and serv
|
|||
|
||||
- [ ] Create pull request for [release notes](https://github.com/encode/django-rest-framework/blob/master/docs/topics/release-notes.md) based on the [*.*.* milestone](https://github.com/encode/django-rest-framework/milestones/***).
|
||||
- [ ] Update supported versions:
|
||||
- [ ] `setup.py` `python_requires` list
|
||||
- [ ] `setup.py` Python & Django version trove classifiers
|
||||
- [ ] `pyproject.toml` `python_requires` list
|
||||
- [ ] `pyproject.toml` Python & Django version trove classifiers
|
||||
- [ ] `README` Python & Django versions
|
||||
- [ ] `docs` Python & Django versions
|
||||
- [ ] Update the translations from [transifex](https://www.django-rest-framework.org/topics/project-management/#translations).
|
||||
|
@ -71,7 +71,9 @@ The following template should be used for the description of the issue, and serv
|
|||
- [ ] Confirm with @tomchristie that release is finalized and ready to go.
|
||||
- [ ] Ensure that release date is included in pull request.
|
||||
- [ ] Merge the release pull request.
|
||||
- [ ] Push the package to PyPI with `./setup.py publish`.
|
||||
- [ ] Install the release tools: `pip install build twine`
|
||||
- [ ] Build the package: `python -m build`
|
||||
- [ ] Push the package to PyPI with `twine upload dist/*`
|
||||
- [ ] Tag the release, with `git tag -a *.*.* -m 'version *.*.*'; git push --tags`.
|
||||
- [ ] Deploy the documentation with `mkdocs gh-deploy`.
|
||||
- [ ] Make a release announcement on the [discussion group](https://groups.google.com/forum/?fromgroups#!forum/django-rest-framework).
|
||||
|
|
79
pyproject.toml
Normal file
79
pyproject.toml
Normal file
|
@ -0,0 +1,79 @@
|
|||
[build-system]
|
||||
requires = ["setuptools>=61.2"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "djangorestframework"
|
||||
readme = "README.md"
|
||||
authors = [{name = "Tom Christie", email = "tom@tomchristie.com"}]
|
||||
license = {text = "BSD"}
|
||||
description = "Web APIs for Django, made easy."
|
||||
classifiers = [
|
||||
"Development Status :: 5 - Production/Stable",
|
||||
"Environment :: Web Environment",
|
||||
"Framework :: Django",
|
||||
"Framework :: Django :: 4.2",
|
||||
"Framework :: Django :: 5.0",
|
||||
"Framework :: Django :: 5.1",
|
||||
"Framework :: Django :: 5.2",
|
||||
"Intended Audience :: Developers",
|
||||
"License :: OSI Approved :: BSD License",
|
||||
"Operating System :: OS Independent",
|
||||
"Programming Language :: Python",
|
||||
"Programming Language :: Python :: 3",
|
||||
"Programming Language :: Python :: 3.9",
|
||||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.13",
|
||||
"Programming Language :: Python :: 3 :: Only",
|
||||
"Topic :: Internet :: WWW/HTTP",
|
||||
]
|
||||
requires-python = ">=3.9"
|
||||
dependencies = ["django>=4.2"]
|
||||
dynamic = ["version"]
|
||||
|
||||
[tool.setuptools.dynamic]
|
||||
version = {attr = "rest_framework.__version__"}
|
||||
|
||||
[project.urls]
|
||||
Homepage = "https://www.django-rest-framework.org"
|
||||
Funding = "https://fund.django-rest-framework.org/topics/funding/"
|
||||
Source = "https://github.com/encode/django-rest-framework"
|
||||
Changelog = "https://www.django-rest-framework.org/community/release-notes/"
|
||||
|
||||
[tool.setuptools]
|
||||
|
||||
[tool.setuptools.packages.find]
|
||||
include = ["rest_framework*"]
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
addopts = "--tb=short --strict-markers -ra"
|
||||
testpaths = ["tests"]
|
||||
filterwarnings = ["ignore:CoreAPI compatibility is deprecated*:rest_framework.RemovedInDRF317Warning"]
|
||||
|
||||
[tool.isort]
|
||||
skip = [".tox"]
|
||||
atomic = true
|
||||
multi_line_output = 5
|
||||
extra_standard_library = ["types"]
|
||||
known_third_party = ["pytest", "_pytest", "django", "pytz", "uritemplate"]
|
||||
known_first_party = ["rest_framework", "tests"]
|
||||
|
||||
[tool.coverage.run]
|
||||
# NOTE: source is ignored with pytest-cov (but uses the same).
|
||||
source = ["."]
|
||||
include = ["rest_framework/*", "tests/*"]
|
||||
branch = true
|
||||
|
||||
[tool.coverage.report]
|
||||
include = ["rest_framework/*", "tests/*"]
|
||||
exclude_lines = [
|
||||
"pragma: no cover",
|
||||
"raise NotImplementedError",
|
||||
]
|
||||
|
||||
[tool.codespell]
|
||||
# Ref: https://github.com/codespell-project/codespell#using-a-config-file
|
||||
skip = "*/kickstarter-announcement.md,*.js,*.map,*.po"
|
||||
ignore-words-list = "fo,malcom,ser"
|
33
setup.cfg
33
setup.cfg
|
@ -1,36 +1,3 @@
|
|||
[metadata]
|
||||
license_files = LICENSE.md
|
||||
|
||||
[tool:pytest]
|
||||
addopts=--tb=short --strict-markers -ra
|
||||
testpaths = tests
|
||||
filterwarnings = ignore:CoreAPI compatibility is deprecated*:rest_framework.RemovedInDRF317Warning
|
||||
|
||||
[flake8]
|
||||
ignore = E501,W503,W504
|
||||
banned-modules = json = use from rest_framework.utils import json!
|
||||
|
||||
[isort]
|
||||
skip=.tox
|
||||
atomic=true
|
||||
multi_line_output=5
|
||||
extra_standard_library=types
|
||||
known_third_party=pytest,_pytest,django,pytz,uritemplate
|
||||
known_first_party=rest_framework,tests
|
||||
|
||||
[coverage:run]
|
||||
# NOTE: source is ignored with pytest-cov (but uses the same).
|
||||
source = .
|
||||
include = rest_framework/*,tests/*
|
||||
branch = 1
|
||||
|
||||
[coverage:report]
|
||||
include = rest_framework/*,tests/*
|
||||
exclude_lines =
|
||||
pragma: no cover
|
||||
raise NotImplementedError
|
||||
|
||||
[codespell]
|
||||
# Ref: https://github.com/codespell-project/codespell#using-a-config-file
|
||||
skip = */kickstarter-announcement.md,*.js,*.map,*.po
|
||||
ignore-words-list = fo,malcom,ser
|
||||
|
|
120
setup.py
Executable file → Normal file
120
setup.py
Executable file → Normal file
|
@ -1,119 +1,3 @@
|
|||
import os
|
||||
import re
|
||||
import shutil
|
||||
import sys
|
||||
from setuptools import setup
|
||||
|
||||
from setuptools import find_packages, setup
|
||||
|
||||
CURRENT_PYTHON = sys.version_info[:2]
|
||||
REQUIRED_PYTHON = (3, 9)
|
||||
|
||||
# This check and everything above must remain compatible with Python 2.7.
|
||||
if CURRENT_PYTHON < REQUIRED_PYTHON:
|
||||
sys.stderr.write("""
|
||||
==========================
|
||||
Unsupported Python version
|
||||
==========================
|
||||
|
||||
This version of Django REST Framework requires Python {}.{}, but you're trying
|
||||
to install it on Python {}.{}.
|
||||
|
||||
This may be because you are using a version of pip that doesn't
|
||||
understand the python_requires classifier. Make sure you
|
||||
have pip >= 9.0 and setuptools >= 24.2, then try again:
|
||||
|
||||
$ python -m pip install --upgrade pip setuptools
|
||||
$ python -m pip install djangorestframework
|
||||
|
||||
This will install the latest version of Django REST Framework which works on
|
||||
your version of Python. If you can't upgrade your pip (or Python), request
|
||||
an older version of Django REST Framework:
|
||||
|
||||
$ python -m pip install "djangorestframework<3.10"
|
||||
""".format(*(REQUIRED_PYTHON + CURRENT_PYTHON)))
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def read(f):
|
||||
with open(f, encoding='utf-8') as file:
|
||||
return file.read()
|
||||
|
||||
|
||||
def get_version(package):
|
||||
"""
|
||||
Return package version as listed in `__version__` in `init.py`.
|
||||
"""
|
||||
init_py = open(os.path.join(package, '__init__.py')).read()
|
||||
return re.search("__version__ = ['\"]([^'\"]+)['\"]", init_py).group(1)
|
||||
|
||||
|
||||
version = get_version('rest_framework')
|
||||
|
||||
|
||||
if sys.argv[-1] == 'publish':
|
||||
if os.system("pip freeze | grep twine"):
|
||||
print("twine not installed.\nUse `pip install twine`.\nExiting.")
|
||||
sys.exit()
|
||||
os.system("python setup.py sdist bdist_wheel")
|
||||
if os.system("twine check dist/*"):
|
||||
print("twine check failed. Packages might be outdated.")
|
||||
print("Try using `pip install -U twine wheel`.\nExiting.")
|
||||
sys.exit()
|
||||
os.system("twine upload dist/*")
|
||||
print("You probably want to also tag the version now:")
|
||||
print(" git tag -a %s -m 'version %s'" % (version, version))
|
||||
print(" git push --tags")
|
||||
shutil.rmtree('dist')
|
||||
shutil.rmtree('build')
|
||||
shutil.rmtree('djangorestframework.egg-info')
|
||||
sys.exit()
|
||||
|
||||
|
||||
setup(
|
||||
name='djangorestframework',
|
||||
version=version,
|
||||
url='https://www.django-rest-framework.org/',
|
||||
license='BSD',
|
||||
description='Web APIs for Django, made easy.',
|
||||
long_description=read('README.md'),
|
||||
long_description_content_type='text/markdown',
|
||||
author='Tom Christie',
|
||||
author_email='tom@tomchristie.com', # SEE NOTE BELOW (*)
|
||||
packages=find_packages(exclude=['tests*']),
|
||||
include_package_data=True,
|
||||
install_requires=["django>=4.2"],
|
||||
python_requires=">=3.9",
|
||||
zip_safe=False,
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Web Environment',
|
||||
'Framework :: Django',
|
||||
'Framework :: Django :: 4.2',
|
||||
'Framework :: Django :: 5.0',
|
||||
'Framework :: Django :: 5.1',
|
||||
'Framework :: Django :: 5.2',
|
||||
'Intended Audience :: Developers',
|
||||
'License :: OSI Approved :: BSD License',
|
||||
'Operating System :: OS Independent',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
'Programming Language :: Python :: 3.12',
|
||||
'Programming Language :: Python :: 3.13',
|
||||
'Programming Language :: Python :: 3 :: Only',
|
||||
'Topic :: Internet :: WWW/HTTP',
|
||||
],
|
||||
project_urls={
|
||||
'Funding': 'https://fund.django-rest-framework.org/topics/funding/',
|
||||
'Source': 'https://github.com/encode/django-rest-framework',
|
||||
'Changelog': 'https://www.django-rest-framework.org/community/release-notes/',
|
||||
},
|
||||
)
|
||||
|
||||
# (*) Please direct queries to the discussion group, rather than to me directly
|
||||
# Doing so helps ensure your question is helpful to other users.
|
||||
# Queries directly to my email are likely to receive a canned response.
|
||||
#
|
||||
# Many thanks for your understanding.
|
||||
setup()
|
||||
|
|
Loading…
Reference in New Issue
Block a user