Comments (3)
Another glitch was that some aliases were missing, but this will be fixed in the next Cython release: cython/cython#5934.
from falcon.
It's also possible to import a compiled pure python cython module without using the compiled code, by doing a bit of shenanigans with the import machinery. This is useful for tests and benchmarks:
_M = TypeVar("_M", bound=ModuleType)
def load_uncompiled_module(module: _M) -> _M:
"""Load the non-compied version of a module that is also
compiled with cython.
"""
full_name = module.__name__
assert module.__spec__
parent_name = module.__spec__.parent
assert parent_name
parent_module = sys.modules[parent_name]
assert parent_module.__spec__
package_path = parent_module.__spec__.origin
assert package_path and package_path.endswith("__init__.py")
name = full_name.split(".")[-1]
module_path = package_path.replace("__init__.py", f"{name}.py")
py_spec = importlib.util.spec_from_file_location(full_name, module_path)
assert py_spec
py_module = importlib.util.module_from_spec(py_spec)
assert py_spec.loader
py_spec.loader.exec_module(py_module)
return cast(_M, py_module)
from falcon.
One unpleasant gotcha so far is that cython
needs to be imported directly in a module that is being cythonized, importing via another module/compat loader doesn't work for some reason. Probably it is AST-parsed by Cython instead of using the normal import machinery.
from falcon.
Related Issues (20)
- `DefaultEventLoopPolicy.get_event_loop()` is deprecated (in the case of no loop) HOT 3
- 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
- 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.