Skip to content

remove python < 3.7 support (based on #3) #113

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 14 commits into from
Oct 16, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [2.7, 3.5, 3.6, 3.7, 3.8, pypy2, pypy3]
python-version: ["3.7", "3.8", "3.9", "3.10", "pypy3"]
steps:
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
Expand All @@ -40,7 +40,7 @@ jobs:
- name: Set up Python 3.8
uses: actions/setup-python@v1
with:
python-version: 3.8
python-version: "3.8"
- name: Checkout ${{ github.base_ref }}
uses: actions/checkout@v2
with:
Expand Down
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ and expose its documentation properly using `Swagger`_.
Compatibility
=============

Flask-RESTX requires Python 2.7 or 3.4+.
Flask-RESTX requires Python 3.5+.

On Flask Compatibility
======================
Expand Down
4 changes: 2 additions & 2 deletions doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ development and to support our users.
Compatibility
=============

flask-restx requires Python 2.7+ or 3.4+.
Flask-RESTX requires Python 3.7+.


Installation
============

You can install flask-restx with pip:
You can install Flask-RESTX with pip:

.. code-block:: console

Expand Down
2 changes: 1 addition & 1 deletion doc/parsing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ It looks for two arguments in the :attr:`flask.Request.values` dict: an integer
.. note ::

The default argument type is a unicode string.
This will be ``str`` in python3 and ``unicode`` in python2.
This will be ``str``.

If you specify the ``help`` value,
it will be rendered as the error message when a type error is raised while parsing it.
Expand Down
4 changes: 4 additions & 0 deletions flask_restplus/__about__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
__version__ = "0.13.1.dev"
__description__ = (
"Fully featured framework for fast, easy and documented API development with Flask"
)
185 changes: 185 additions & 0 deletions flask_restplus/_http.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
"""
This file is backported from Python 3.5 http built-in module.
"""

from enum import IntEnum


class HTTPStatus(IntEnum):
"""HTTP status codes and reason phrases

Status codes from the following RFCs are all observed:

* RFC 7231: Hypertext Transfer Protocol (HTTP/1.1), obsoletes 2616
* RFC 6585: Additional HTTP Status Codes
* RFC 3229: Delta encoding in HTTP
* RFC 4918: HTTP Extensions for WebDAV, obsoletes 2518
* RFC 5842: Binding Extensions to WebDAV
* RFC 7238: Permanent Redirect
* RFC 2295: Transparent Content Negotiation in HTTP
* RFC 2774: An HTTP Extension Framework
"""

def __new__(cls, value, phrase, description=""):
obj = int.__new__(cls, value)
obj._value_ = value

obj.phrase = phrase
obj.description = description
return obj

def __str__(self):
return str(self.value)

# informational
CONTINUE = 100, "Continue", "Request received, please continue"
SWITCHING_PROTOCOLS = (
101,
"Switching Protocols",
"Switching to new protocol; obey Upgrade header",
)
PROCESSING = 102, "Processing"

# success
OK = 200, "OK", "Request fulfilled, document follows"
CREATED = 201, "Created", "Document created, URL follows"
ACCEPTED = (202, "Accepted", "Request accepted, processing continues off-line")
NON_AUTHORITATIVE_INFORMATION = (
203,
"Non-Authoritative Information",
"Request fulfilled from cache",
)
NO_CONTENT = 204, "No Content", "Request fulfilled, nothing follows"
RESET_CONTENT = 205, "Reset Content", "Clear input form for further input"
PARTIAL_CONTENT = 206, "Partial Content", "Partial content follows"
MULTI_STATUS = 207, "Multi-Status"
ALREADY_REPORTED = 208, "Already Reported"
IM_USED = 226, "IM Used"

# redirection
MULTIPLE_CHOICES = (
300,
"Multiple Choices",
"Object has several resources -- see URI list",
)
MOVED_PERMANENTLY = (
301,
"Moved Permanently",
"Object moved permanently -- see URI list",
)
FOUND = 302, "Found", "Object moved temporarily -- see URI list"
SEE_OTHER = 303, "See Other", "Object moved -- see Method and URL list"
NOT_MODIFIED = (304, "Not Modified", "Document has not changed since given time")
USE_PROXY = (
305,
"Use Proxy",
"You must use proxy specified in Location to access this resource",
)
TEMPORARY_REDIRECT = (
307,
"Temporary Redirect",
"Object moved temporarily -- see URI list",
)
PERMANENT_REDIRECT = (
308,
"Permanent Redirect",
"Object moved temporarily -- see URI list",
)

# client error
BAD_REQUEST = (400, "Bad Request", "Bad request syntax or unsupported method")
UNAUTHORIZED = (401, "Unauthorized", "No permission -- see authorization schemes")
PAYMENT_REQUIRED = (402, "Payment Required", "No payment -- see charging schemes")
FORBIDDEN = (403, "Forbidden", "Request forbidden -- authorization will not help")
NOT_FOUND = (404, "Not Found", "Nothing matches the given URI")
METHOD_NOT_ALLOWED = (
405,
"Method Not Allowed",
"Specified method is invalid for this resource",
)
NOT_ACCEPTABLE = (406, "Not Acceptable", "URI not available in preferred format")
PROXY_AUTHENTICATION_REQUIRED = (
407,
"Proxy Authentication Required",
"You must authenticate with this proxy before proceeding",
)
REQUEST_TIMEOUT = (408, "Request Timeout", "Request timed out; try again later")
CONFLICT = 409, "Conflict", "Request conflict"
GONE = (410, "Gone", "URI no longer exists and has been permanently removed")
LENGTH_REQUIRED = (411, "Length Required", "Client must specify Content-Length")
PRECONDITION_FAILED = (
412,
"Precondition Failed",
"Precondition in headers is false",
)
REQUEST_ENTITY_TOO_LARGE = (413, "Request Entity Too Large", "Entity is too large")
REQUEST_URI_TOO_LONG = (414, "Request-URI Too Long", "URI is too long")
UNSUPPORTED_MEDIA_TYPE = (
415,
"Unsupported Media Type",
"Entity body in unsupported format",
)
REQUESTED_RANGE_NOT_SATISFIABLE = (
416,
"Requested Range Not Satisfiable",
"Cannot satisfy request range",
)
EXPECTATION_FAILED = (
417,
"Expectation Failed",
"Expect condition could not be satisfied",
)
UNPROCESSABLE_ENTITY = 422, "Unprocessable Entity"
LOCKED = 423, "Locked"
FAILED_DEPENDENCY = 424, "Failed Dependency"
UPGRADE_REQUIRED = 426, "Upgrade Required"
PRECONDITION_REQUIRED = (
428,
"Precondition Required",
"The origin server requires the request to be conditional",
)
TOO_MANY_REQUESTS = (
429,
"Too Many Requests",
"The user has sent too many requests in "
'a given amount of time ("rate limiting")',
)
REQUEST_HEADER_FIELDS_TOO_LARGE = (
431,
"Request Header Fields Too Large",
"The server is unwilling to process the request because its header "
"fields are too large",
)

# server errors
INTERNAL_SERVER_ERROR = (
500,
"Internal Server Error",
"Server got itself in trouble",
)
NOT_IMPLEMENTED = (501, "Not Implemented", "Server does not support this operation")
BAD_GATEWAY = (502, "Bad Gateway", "Invalid responses from another server/proxy")
SERVICE_UNAVAILABLE = (
503,
"Service Unavailable",
"The server cannot process the request due to a high load",
)
GATEWAY_TIMEOUT = (
504,
"Gateway Timeout",
"The gateway server did not receive a timely response",
)
HTTP_VERSION_NOT_SUPPORTED = (
505,
"HTTP Version Not Supported",
"Cannot fulfill request",
)
VARIANT_ALSO_NEGOTIATES = 506, "Variant Also Negotiates"
INSUFFICIENT_STORAGE = 507, "Insufficient Storage"
LOOP_DETECTED = 508, "Loop Detected"
NOT_EXTENDED = 510, "Not Extended"
NETWORK_AUTHENTICATION_REQUIRED = (
511,
"Network Authentication Required",
"The client needs to authenticate to gain network access",
)
Loading