Eli Uriegas
c75d484f23
Merge branch 'master' of github.com:channelcat/sanic into add_app_loop_safety
2017-02-17 07:10:59 -06:00
Eli Uriegas
0b914866eb
Merge pull request #401 from youknowone/error-logging
...
Enhance error logging
2017-02-17 07:01:40 -06:00
Eli Uriegas
55dc45de33
Merge pull request #455 from seemethere/add_better_response_error_detection
...
Adds some safety around response types being wrong
2017-02-17 06:59:52 -06:00
Eli Uriegas
39aa64ff68
Remove un-needed loop assignment
2017-02-17 06:57:41 -06:00
Eli Uriegas
94bb91f2fa
Adds some safety around app loop property
2017-02-17 06:54:26 -06:00
Jeong YunWon
b44e8167d7
Enhance error logging
...
- Prevent to fall into error logging recursion when it doesn't have
request info (Print 'Unknown' when the request is still `None`
- Print repr(e) rather than str(e)
2017-02-17 14:05:46 +09:00
Eli Uriegas
ad13529eaa
Removes the extra logging message for run
...
Solves for #456
2017-02-16 21:51:19 -06:00
Eli Uriegas
04c8f4a5ed
Adds some safety around response types being wrong
...
Before we didn't check if the response object was actually a response
object. This PR catches the exception should it happen and reports it to
the user.
2017-02-16 17:49:14 -06:00
Eli Uriegas
865506546f
Merge pull request #440 from r0fls/isinstance
...
isinstance -> try/except
2017-02-16 17:19:04 -06:00
Eli Uriegas
fe72fadedd
Merge pull request #432 from agoose77/cleanups
...
Bugfix & simplfication for host based routing
2017-02-16 17:18:24 -06:00
Eli Uriegas
483b442b7d
Default request.args to RequestParameters
2017-02-16 15:54:20 -06:00
Alec Buckenheimer
f9ab24a077
#449 use stdlib json module if ujson is unavailible
2017-02-16 15:03:52 -05:00
Raphael Deem
6726affa7e
isinstance -> try/except
2017-02-15 19:34:45 -08:00
Eli Uriegas
6ecf2a6eb2
Merge pull request #439 from seemethere/move_sanic_to_app
...
Moves sanic/sanic.py to sanic/app.py
2017-02-15 21:03:41 -06:00
Eli Uriegas
a359e11f97
Merge pull request #422 from r0fls/420
...
move logging to method in ErrorHandler
2017-02-15 21:03:15 -06:00
Eli Uriegas
54b2d74068
Get rid of relative imports
2017-02-15 20:54:00 -06:00
Eli Uriegas
c99aa7279b
Moves sanic/sanic.py to sanic/app.py
...
Functionality wise this won't change much for most users, unless you
were directly importing from `sanic.sanic` in which case I am sorry if
you're affected by this.
Main motivation was because jedi autocompletion didn't work with this
and we were using relative imports to compensate for the fact that
having a module inside of your module with the same name creates major
namespace problems.
2017-02-15 20:47:34 -06:00
Eli Uriegas
874698b93f
Merge pull request #431 from subyraman/test-client-v2
...
Add Flask-like `test_client` to replace `sanic_endpoint_test`
2017-02-15 15:44:30 -06:00
Raphael Deem
1cf1024332
Merge branch 'master' into 420
2017-02-15 09:29:52 -08:00
Raphael Deem
efc90f8f5a
Merge pull request #434 from agoose77/fix_warn_error
...
Fix mistake in warning
2017-02-14 16:46:37 -08:00
Angus Hollands
6535ba7c24
Fix mistake in warning
2017-02-14 20:53:55 +00:00
Angus Hollands
5c29c3d160
Merge branch 'master' of https://github.com/channelcat/sanic into cleanups
2017-02-14 20:47:28 +00:00
Angus Hollands
742d4bff78
Change to iterable as Python3.5 doesn't support Collection.
...
We don't really need the getitem and len attributes anyway
2017-02-14 20:46:14 +00:00
Angus Hollands
b442d78ebb
Bugfix & simplfication for host based routing (if list of hosts passed after a previous vhost route was added, previously attempted to add set to set)
...
Add comment documenting substandard behaviour
2017-02-14 20:32:04 +00:00
Eli Uriegas
d44edb5930
Merge pull request #430 from aquacash5/master
...
Added raw response for bag o' bytes responses
2017-02-14 14:19:01 -06:00
Suby Raman
d5633b3705
fix deprecation message
2017-02-14 15:16:58 -05:00
Suby Raman
3b68dc72e7
rework testing
2017-02-14 14:51:20 -05:00
Angus Hollands
51611c3934
Pep8 cleanups ( #429 )
...
* PEP8 cleanups
* PEP8 cleanups (server.py)
* PEP8 cleanups (blueprints.py)
* PEP8 cleanups (config.py)
* PEP8 cleanups (cookies.py)
* PEP8 cleanups (handlers.py)
* PEP8 cleanups (request.py)
* PEP8 cleanups (response.py)
* PEP8 cleanups (router.py)
* PEP8 cleanups (sanic.py) #2
* PEP8 cleanups (server.py) #2
* PEP8 cleanups (static.py)
* PEP8 cleanups (utils.py)
* PEP8 cleanups (views.py)
Updated docstring
2017-02-14 13:10:19 -06:00
Kyle Blöm
747b7567d7
Changed docstring for raw response
2017-02-14 09:40:33 -08:00
Kyle Blöm
797891d6cf
Added raw response for bag o' bytes responses
2017-02-14 09:27:39 -08:00
Eli Uriegas
286dc3c32b
Merge pull request #399 from lixxu/master
...
improve url_for to support multi values and special options
2017-02-14 10:27:54 -06:00
Eli Uriegas
b139810b6a
Merge pull request #424 from growingdever/blueprint-support-view
...
support view instance for blueprint add_route method
2017-02-14 10:26:05 -06:00
Angus Hollands
56f56d008a
Simplify trigger events (now guaranteeed to receive list of events)
...
Don't bother checking if list empty - this function is not called often
2017-02-14 15:15:15 +00:00
growingdever
81a8a99b6e
wrap over width comment
2017-02-14 17:20:39 +09:00
growingdever
07aa0ee7ad
- copy codes from Sonic.add_route
...
- modify comment by r0fls
2017-02-14 17:15:38 +09:00
growingdever
b66a6bddbc
fix typo
2017-02-14 14:30:07 +09:00
growingdever
d57d90fe6b
- make blueprint add_route method support view instance
...
- update documentation that doesn't specify url_prefix parameter
2017-02-14 14:23:22 +09:00
Raphael Deem
de6c646ee8
move logging to method in ErrorHandler
2017-02-13 19:44:54 -08:00
lixxu
4839ede64f
update test for url_for and update routing.md doc
2017-02-14 10:26:30 +08:00
Raphael Deem
7a3f5d508b
fix merge conflicts
2017-02-13 14:19:44 -08:00
Eli Uriegas
1660041470
Merge pull request #408 from agoose77/master
...
Use app decorator instead of run arguments for before_start
2017-02-13 12:54:46 -06:00
Suby Raman
b2be821637
reverse router changes
2017-02-13 11:55:00 -05:00
Suby Raman
051ff2b325
remove repr stuff
2017-02-13 11:50:09 -05:00
Suby Raman
4d6f9ffd7c
rebase
2017-02-13 11:45:55 -05:00
Suby Raman
d614823013
rebase
2017-02-13 11:38:28 -05:00
Eli Uriegas
48aa51b739
Merge pull request #413 from r0fls/loop-signal-handlers
...
use try/except when adding loop sig handlers
2017-02-13 10:13:56 -06:00
Raphael Deem
41c6125e1b
use try/except when adding loop sig handlers
2017-02-12 14:43:00 -08:00
Eli Uriegas
bb3d48f98b
Merge pull request #412 from seemethere/improving_performance
...
Header performance gains
2017-02-12 15:48:45 -06:00
Raphael Deem
b5e46e83e2
ensure_future -> add_task
2017-02-12 12:29:12 -08:00
Angus Hollands
2340910b46
Update deprecation message
...
Fix bug with single callbacks
2017-02-12 18:15:14 +00:00
Eli Uriegas
d8c4c1525d
Merge pull request #406 from agoose77/master_pre_patches_1
...
Cleanup middleware decorator
2017-02-12 12:14:50 -06:00
Eli Uriegas
6713ef7726
Remove unused import
2017-02-12 12:09:06 -06:00
Eli Uriegas
ae7555b065
Performance was down so this brings it back up
...
Changes from #378 introduced about a 10k request/sec slowdown. This
tries to rememdy it while keeping the same functionality but it's still
not as fast as 0.3.1
2017-02-12 12:05:14 -06:00
Angus Hollands
ee6ff0cc60
Add deprecation and old API
2017-02-12 12:28:02 +00:00
Raphael Deem
94b2352c2c
add ensure_future method
2017-02-11 17:40:17 -08:00
Raphael Deem
0e1bb6ab04
add loop property
2017-02-11 16:28:35 -08:00
Angus Hollands
8b08a370c5
Remove todo
2017-02-11 14:39:32 +00:00
Angus Hollands
b5e50ecb75
Use app decorator instead of run arguments for before_start
...
Mirror listener of blueprints
2017-02-11 14:30:17 +00:00
Angus Hollands
e00c9d0ee0
Fix line length
2017-02-11 12:39:04 +00:00
Angus Hollands
be9c9f045a
Cleanup middleware decorator
2017-02-11 12:27:25 +00:00
lixxu
fb419eaa36
fix bug: netloc always in url if SERVER_NAME defined in config even _external not true
2017-02-09 18:26:17 +08:00
lixxu
cf2a363e5e
improve url_for to support multi values for one arg, add _anchor/_external/_scheme options
2017-02-09 16:44:23 +08:00
Eli Uriegas
579afe012b
Fixes errors related to #378
2017-02-08 19:59:34 -06:00
Eli Uriegas
eb059183f7
Merge branch 'master' into master
2017-02-08 19:37:32 -06:00
Eli Uriegas
419156f7cc
Merge pull request #397 from seemethere/increment_031
...
Increment to v0.3.1
2017-02-08 19:23:20 -06:00
Eli Uriegas
b7f7883fb7
Increment to v0.3.1
2017-02-08 19:22:51 -06:00
Eli Uriegas
a5a7490bca
Merge pull request #379 from youknowone/exception
...
Let exception handler handle inherited exceptions
2017-02-08 19:20:42 -06:00
Eli Uriegas
6724d8131c
Merge pull request #387 from subyraman/url-for-v3
...
Add `url_for` method for simple routes, blueprints, HTTPMethodView
2017-02-08 19:20:09 -06:00
Raphael Deem
a19bb15070
Merge pull request #389 from chenfengyuan/fix_run_async_demo
...
fix run_async demo
2017-02-07 14:58:48 -08:00
Eli Uriegas
2ee0147848
Merge pull request #386 from youknowone/sanic_endpoint_test
...
Fix sanic_endpoint_test working with redirects
2017-02-07 10:57:05 -06:00
Jeong YunWon
413c92c631
Let exception handler handle inherited exceptions
...
Original sanic exception handler only could handle exact matching
exceptions. New `lookup` method will provide ability to looking up
their ancestors without additional cost of performance.
2017-02-07 21:08:31 +09:00
Suby Raman
36d519026f
reject unnamed handlers
2017-02-06 11:11:00 -05:00
Fengyuan Chen
aa54785918
fix always warning loop is passed issue
2017-02-06 11:11:00 -05:00
Jeong YunWon
a15ee3ad06
Fix sanic_endpoint_test working with redirects
...
Before fix, it raises error like:
```
tests/test_utils.py F
================================= FAILURES =================================
______________________________ test_redirect _______________________________
app = <sanic.sanic.Sanic object at 0x1045fda20>, method = 'get', uri = '/1', gather_request = True, debug = False
server_kwargs = {}, request_args = (), request_kwargs = {}
_collect_request = <function sanic_endpoint_test.<locals>._collect_request at 0x1045ec950>
_collect_response = <function sanic_endpoint_test.<locals>._collect_response at 0x1045ec7b8>
def sanic_endpoint_test(app, method='get', uri='/', gather_request=True,
debug=False, server_kwargs={},
*request_args, **request_kwargs):
results = []
exceptions = []
if gather_request:
def _collect_request(request):
results.append(request)
app.request_middleware.appendleft(_collect_request)
async def _collect_response(sanic, loop):
try:
response = await local_request(method, uri, *request_args,
**request_kwargs)
results.append(response)
except Exception as e:
exceptions.append(e)
app.stop()
app.run(host=HOST, debug=debug, port=PORT,
after_start=_collect_response, **server_kwargs)
if exceptions:
raise ValueError("Exception during request: {}".format(exceptions))
if gather_request:
try:
> request, response = results
E ValueError: too many values to unpack (expected 2)
sanic/utils.py:47: ValueError
During handling of the above exception, another exception occurred:
utils_app = <sanic.sanic.Sanic object at 0x1045fda20>
def test_redirect(utils_app):
"""Test sanic_endpoint_test is working for redirection"""
> request, response = sanic_endpoint_test(utils_app, uri='/1')
tests/test_utils.py:33:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
app = <sanic.sanic.Sanic object at 0x1045fda20>, method = 'get', uri = '/1', gather_request = True, debug = False
server_kwargs = {}, request_args = (), request_kwargs = {}
_collect_request = <function sanic_endpoint_test.<locals>._collect_request at 0x1045ec950>
_collect_response = <function sanic_endpoint_test.<locals>._collect_response at 0x1045ec7b8>
def sanic_endpoint_test(app, method='get', uri='/', gather_request=True,
debug=False, server_kwargs={},
*request_args, **request_kwargs):
results = []
exceptions = []
if gather_request:
def _collect_request(request):
results.append(request)
app.request_middleware.appendleft(_collect_request)
async def _collect_response(sanic, loop):
try:
response = await local_request(method, uri, *request_args,
**request_kwargs)
results.append(response)
except Exception as e:
exceptions.append(e)
app.stop()
app.run(host=HOST, debug=debug, port=PORT,
after_start=_collect_response, **server_kwargs)
if exceptions:
raise ValueError("Exception during request: {}".format(exceptions))
if gather_request:
try:
request, response = results
return request, response
except:
raise ValueError(
"Request and response object expected, got ({})".format(
> results))
E ValueError: Request and response object expected, got ([{}, {}, {}, <ClientResponse(http://127.0.0.1:42101/3 ) [200 OK]>
E <CIMultiDictProxy('Content-Type': 'text/plain; charset=utf-8', 'Content-Length': '2', 'Connection': 'keep-alive', 'Keep-Alive': 'timeout=1')>
E ])
sanic/utils.py:52: ValueError
```
2017-02-05 13:57:04 +09:00
Fengyuan Chen
29680cb515
fix always warning loop is passed issue
2017-02-04 16:09:09 +08:00
Fengyuan Chen
884749f345
fix run_async demo
2017-02-04 15:27:46 +08:00
Suby Raman
5632d073be
update docs
2017-02-02 13:00:15 -05:00
Suby Raman
f9056099f9
all works
2017-02-02 12:52:48 -05:00
Suby Raman
7c09ec29f7
rebase
2017-02-02 12:21:14 -05:00
Eli Uriegas
6f0b09509e
Merge pull request #213 from sfstpala/master
...
Make it possible to disable the logo by subclassing Config
2017-02-01 23:07:52 -06:00
Raphael Deem
b29f648148
typo: async_run -> run_async
2017-01-31 12:46:02 -08:00
Eli Uriegas
487e3352e4
Revert "fix async run, add tests"
...
This reverts commit 41da793b5a
.
2017-01-31 07:30:17 -06:00
Eli Uriegas
17a92a58b2
Merge pull request #369 from r0fls/fix-async-run
...
fix async run, add tests
2017-01-30 22:21:25 -06:00
Kyle Blöm
d193a1eb70
Added the tests, code formatting changes, and the Range Request feature.
2017-01-30 17:04:51 -08:00
Eli Uriegas
6d18fb6bae
Merge pull request #363 from r0fls/run-helper
...
Run helper
2017-01-30 05:51:50 -06:00
Raphael Deem
41da793b5a
fix async run, add tests
2017-01-29 23:47:47 -08:00
Channel Cat
0ef39f35ae
Added route shorthands to blueprints
2017-01-29 23:20:38 -08:00
Channel Cat
4c80cd185f
Fix flake8
2017-01-29 17:44:46 -08:00
Channel Cat
629524af04
Restructured blueprint class
...
Blueprints currently queue functions to be called, which are simple, yet
hard to inspect. These changes allow tools to be built that analyze
blueprints more easily.
2017-01-29 17:39:55 -08:00
Raphael Deem
82d1d30a41
review updates
2017-01-29 14:01:00 -08:00
Raphael Deem
10dbb9186d
combine logic from create_server() and run()
2017-01-29 13:36:13 -08:00
Eli Uriegas
a547798b08
Merge pull request #360 from seemethere/fix_route_overloading_for_dynamic_routes
...
Fixes route overloading for dynamic routes
2017-01-29 15:35:13 -06:00
Eli Uriegas
f56c5e3a45
Merge pull request #199 from Tim-Erwin/improved_config
...
added methods to load config from a file
2017-01-29 15:27:34 -06:00
Eli Uriegas
0a5fa72099
Add logic to make dynamic route merging work
...
This is by no means the final solution but it's a start in the right
direction. Eventually what needs to happen is we need to reduce the
complexity of the routing. CompsitionView can probably be removed later
on in favor of better Route objects. Also in the next version of sanic
we need to move merge_route and add_parameter out of the add_route logic
and just have them as standalone methods.
The tests should cover everything that we need so that if any changes
are made we can identify regression.
2017-01-29 15:16:07 -06:00
Raphael Deem
753d2da6db
fix async run
2017-01-28 15:47:29 -08:00
Eli Uriegas
d3344da9c5
Add a pesky newline
2017-01-27 22:15:34 -06:00
Eli Uriegas
dea8e16f49
Force method to lower
2017-01-27 22:07:31 -06:00
Eli Uriegas
13803bdb30
Update for HTTPMethodView compatibility
2017-01-27 22:05:46 -06:00
Eli Uriegas
41c52487ee
Fixes route overloading for dynamic routes
...
Addresses #353 , now dynamic routes work alongside our newly minted
overloaded routes! Also fixed an unintended side effect where methods
were still being passed in as None for `Sanic.add_route`.
2017-01-27 21:00:33 -06:00
Raphael Deem
0eb779185d
fix deprecation warnings
2017-01-27 18:09:19 -08:00