Skip to content

Commit

Permalink
Merge branch 'master' into fix_typo
Browse files Browse the repository at this point in the history
  • Loading branch information
EtiennePelletier committed Nov 5, 2021
2 parents 231000e + 88497ce commit 322357d
Show file tree
Hide file tree
Showing 8 changed files with 44 additions and 76 deletions.
72 changes: 0 additions & 72 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,75 +26,3 @@ jobs:
run: |
python setup.py sdist bdist_wheel
twine upload dist/*
feedstock:
needs: build
runs-on: ubuntu-latest
steps:
- name: Set up Python 3.8
uses: actions/setup-python@v1
with:
python-version: 3.8
- name: Checkout flask-restx code
uses: actions/checkout@v2
with:
path: base
- name: Checkout flask-restx-feedstock code
uses: actions/checkout@v2
with:
repository: python-restx/flask-restx-feedstock.git
path: feedstock
token: ${{ secrets.BOT_TOKEN }}
- name: Set Variables
id: vars
run: |
echo "::set-output name=version::$(echo ${{ github.ref }} | cut -d'/' -f3)"
- name: Create a release branch
run: |
cd feedstock
git remote add forge https://github.com/conda-forge/flask-restx-feedstock.git
git fetch forge
git checkout forge/master -b release-${{ steps.vars.outputs.version }}
- name: Update meta.yml
shell: python
run: |
from http import client
from pkg_resources import parse_requirements
import re
VERSION = "${{ steps.vars.outputs.version }}"
with open("feedstock/recipe/meta.yaml") as f:
meta = f.read()
requirements = []
with open("base/requirements/install.pip") as f:
for req in parse_requirements(f):
name = req.project_name
versions = ",".join(["".join(spec) for spec in req.specs])
if versions:
name += " " + versions
requirements.append(name)
requirements = '"' + '", "'.join(requirements) + '"'
conn = client.HTTPSConnection("pypi.org")
conn.request("GET", "/simple/flask-restx/")
resp = conn.getresponse()
content = str(resp.read(), "utf-8")
conn.close()
m = re.findall(r'flask-restx-%s.tar.gz#sha256=([A-Za-z0-9]+)"' % VERSION, content)
if not m:
raise Exception("sha256 not found in: %s" % content)
sha256 = m[0]
meta = re.sub(r'({% set version = )".+"( %})', r'\1"%s"\2' % VERSION, meta)
meta = re.sub(r'({% set sha256 = )".+"( %})', r'\1"%s"\2' % sha256, meta)
meta = re.sub(r"({% set requirements = \[).+(] %})", r"\1%s\2" % requirements, meta)
meta = re.sub(r"(number:) \d+", r"\1 0", meta)
with open("feedstock/recipe/meta.yaml", "w") as f:
f.write(meta)
- name: Push
run: |
cd feedstock
git config user.name "${{ secrets.BOT_USERNAME }}"
git config user.email "[email protected]"
git add recipe/meta.yaml
git commit -m"Release version ${{ steps.vars.outputs.version }}"
git push origin release-${{ steps.vars.outputs.version }}
- name: Create Pull Request
run: |
curl --fail -u ${{ secrets.BOT_USERNAME }}:${{ secrets.BOT_TOKEN }} https://api.github.com/repos/conda-forge/flask-restx-feedstock/pulls -d '{"title": "Release version ${{ steps.vars.outputs.version }}", "head": "python-restx:release-${{ steps.vars.outputs.version }}", "base": "master", "maintainer_can_modify": true}'
13 changes: 13 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,19 @@ Releases prior to 0.3.0 were “best effort” filled out, but are missing
some info. If you see your contribution missing info, please open a PR
on the Changelog!

.. _section-0.5.1:
0.5.1
-----

.. _bug_fixes-0.5.1
Bug Fixes
~~~~~~~~~

::

* Optimize email regex (#372) [kevinbackhouse]

.. _section-0.5.0:
0.5.0
-----
Expand Down
2 changes: 1 addition & 1 deletion examples/zoo_app/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ aniso8601==9.0.1
attrs==21.2.0
click==7.1.2
Flask==1.1.4
flask-restx==0.4.0
flask-restx==0.5.1
itsdangerous==1.1.0
Jinja2==2.11.3
jsonschema==3.2.0
Expand Down
2 changes: 1 addition & 1 deletion flask_restx/__about__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
__version__ = "0.5.1.dev"
__version__ = "0.5.2.dev"
__description__ = (
"Fully featured framework for fast, easy and documented API development with Flask"
)
5 changes: 4 additions & 1 deletion flask_restx/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ class Api(object):
:param url_scheme: If set to a string (e.g. http, https), then the specs_url and base_url will explicitly use this
scheme regardless of how the application is deployed. This is necessary for some deployments behind a reverse
proxy.
:param str default_swagger_filename: The default swagger filename.
"""

def __init__(
Expand Down Expand Up @@ -136,6 +137,7 @@ def __init__(
serve_challenge_on_401=False,
format_checker=None,
url_scheme=None,
default_swagger_filename="swagger.json",
**kwargs
):
self.version = version
Expand Down Expand Up @@ -166,6 +168,7 @@ def __init__(
self._refresolver = None
self.format_checker = format_checker
self.namespaces = []
self.default_swagger_filename = default_swagger_filename

self.ns_paths = dict()

Expand Down Expand Up @@ -308,7 +311,7 @@ def _register_specs(self, app_or_blueprint):
app_or_blueprint,
SwaggerView,
self.default_namespace,
"/swagger.json",
"/" + self.default_swagger_filename,
endpoint=endpoint,
resource_class_args=(self,),
)
Expand Down
2 changes: 1 addition & 1 deletion flask_restx/inputs.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ def my_type(value):


email_regex = re.compile(
r"^" "(?P<local>[^@]*[^@.])" r"@" r"(?P<server>[^@]+(?:\.[^@]+)*)" r"$",
r"^" "(?P<local>[^@]*[^@.])" r"@" r"(?P<server>[^@\.]+(?:\.[^@\.]+)*)" r"$",
re.IGNORECASE,
)

Expand Down
2 changes: 2 additions & 0 deletions tests/test_inputs.py
Original file line number Diff line number Diff line change
Expand Up @@ -584,6 +584,8 @@ def test_valid_value_default(self, value):
"me@::1",
"[email protected]",
"me@2001:db8:85a3::8a2e:370:7334",
"foo@bar.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?" +
".?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?@",
],
)
def test_invalid_value_default(self, value):
Expand Down
22 changes: 22 additions & 0 deletions tests/test_swagger.py
Original file line number Diff line number Diff line change
Expand Up @@ -3323,3 +3323,25 @@ def get(self):

path = data["paths"]["/with-parser/"]
assert "parameters" not in path

def test_nondefault_swagger_filename(self, app, client):
api = restx.Api(doc="/doc/test", default_swagger_filename="test.json")
ns = restx.Namespace("ns1")

@ns.route("/test1")
class Ns(restx.Resource):
@ns.doc("Docs")
def get(self):
pass

api.add_namespace(ns)
api.init_app(app)

resp = client.get("/test.json")
assert resp.status_code == 200
assert resp.content_type == "application/json"
resp = client.get("/doc/test")
assert resp.status_code == 200
assert resp.content_type == "text/html; charset=utf-8"
resp = client.get("/ns1/test1")
assert resp.status_code == 200

0 comments on commit 322357d

Please sign in to comment.