Comments (3)
seems that what they want you to do for #reasons is the following
try:
loop = asyncio.get_running_loop()
except RuntimeError: # lol custom exception are for noobs
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
I have no idea how someone looked at this and thought "yeah that's a great api to replace get_event_loop
" -.-'
from falcon.
seems that what they want you to do for #reasons is the following
try: loop = asyncio.get_running_loop() except RuntimeError: # lol custom exception are for noobs loop = asyncio.new_event_loop() asyncio.set_event_loop(loop)I have no idea how someone looked at this and thought "yeah that's a great api to replace
get_event_loop
" -.-'
nope that's too simple. the following seems correct
def get_event_loop() -> asyncio.AbstractEventLoop:
try:
return asyncio.get_running_loop()
except RuntimeError:
# avoid "During handling of the above exception, another exception..."
pass
if sys.version_info < (3,12):
return asyncio.get_event_loop()
else:
with warnings.catch_warnings(action='error'):
loop = None
try:
loop = asyncio.get_event_loop()
except (DeprecationWarning, RuntimeError):
# avoid "During handling of the above exception,
# another exception..."
pass
if loop is None:
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
return loop
from falcon.
See also the discussion on python/cpython#100160
from falcon.
Related Issues (20)
- Make contributor's checklist pass on CPython 3.12
- unable to iterate through `MultipartForm` multiple times HOT 2
- `http_date_to_dt()` should return a timezone-aware datetime
- Drop `--no-build-isolation` in testing
- IPv6 WSGI server fails to start
- Migrate to "pure Python" Cython mode where applicable HOT 3
- Make Python 3.12 the default CI version
- Docs facelift HOT 2
- Request: offer a way to validate `get_media()` as part of decoding the stream data to Python HOT 7
- Refactor CONSUME_MULTIPLE_SEGMENTS in BaseConverter HOT 1
- TestClient methods are typed to return _ResultBase, but actually return Result HOT 4
- TestClient sets buffered_stream, but not stream HOT 3
- Add support for 'partitioned' attribute to set_cookie() HOT 7
- Migrate to another code formatter? HOT 5
- Make it easier to extend/subclass default router
- Document how resp is affected by raising `HTTPError`/`HTTPStatus` HOT 3
- Generalize validators to support additional types of validation other than jsonschema HOT 2
- Use `ruff` linter instead of `flake8`
- Update installation docs wrt PEP 517
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from falcon.