- 01 Feb, 2023 1 commit
-
-
Henry Schreiner authored
Signed-off-by:Henry Schreiner <henryschreineriii@gmail.com>
-
- 11 Feb, 2022 1 commit
-
-
Ralf W. Grosse-Kunstleve authored
* `#error BYE_BYE_GOLDEN_SNAKE` * Removing everything related to 2.7 from ci.yml * Commenting-out Centos7 * Removing `PYTHON: 27` from .appveyor.yml * "PY2" removal, mainly from tests. C++ code is not touched. * Systematic removal of `u` prefix from `u"..."` and `u'...'` literals. Collateral cleanup of a couple minor other things. * Cleaning up around case-insensitive hits for `[^a-z]py.*2` in tests/. * Removing obsolete Python 2 mention in compiling.rst * Proper `#error` for Python 2. * Using PY_VERSION_HEX to guard `#error "PYTHON 2 IS NO LONGER SUPPORTED.` * chore: bump pre-commit * style: run pre-commit for pyupgrade 3+ * tests: use sys.version_info, not PY * chore: more Python 2 removal * Uncommenting Centos7 block (PR #3691 showed that it is working again). * Update pre-commit hooks * Fix pre-commit hook * refactor: remove Python 2 from CMake * refactor: remove Python 2 from setup code * refactor: simplify, better static typing * feat: fail with nice messages * refactor: drop Python 2 C++ code * docs: cleanup for Python 3 * revert: intree revert: intree * docs: minor touchup to py2 statement Co-authored-by:
Henry Schreiner <henryschreineriii@gmail.com> Co-authored-by:
Aaron Gokaslan <skylion.aaron@gmail.com>
-
- 13 Aug, 2021 1 commit
-
-
Aaron Gokaslan authored
* Apply isort * Tweak isort config * Add env.py as a known_first_party * Add one missing known first party * Make config compat with older isort versions * Add another comment * Revert pyproject setting
-
- 19 Dec, 2020 1 commit
-
-
Ralf W. Grosse-Kunstleve authored
* minor cleanup: fixing or silencing flake8 errors * ci: lock CMake to non-Universal version * Update .github/workflows/ci.yml Co-authored-by:Henry Schreiner <HenrySchreinerIII@gmail.com>
-
- 16 Oct, 2020 1 commit
-
-
Henry Schreiner authored
* style: use Black everywhere * style: minor touchup from review
-
- 02 Oct, 2020 1 commit
-
-
Yannick Jadoul authored
Moving tp_class access, and consistent fully-qualified naming for PyPy, to detail::get_tp_name (#2520) * Moving tp_class access, and consistent fully-qualified naming for PyPy, to detail::get_tp_name * Change get_tp_name to get_fully_qualified_tp_name
-
- 16 Aug, 2020 1 commit
-
-
Henry Schreiner authored
* tests: refactor and cleanup * refactor: more consistent * tests: vendor six * tests: more xfails, nicer system * tests: simplify to info * tests: suggestions from @YannickJadoul and @bstaletic * tests: restore some pypy tests that now pass * tests: rename info to env * tests: strict False/True * tests: drop explicit strict=True again * tests: reduce minimum PyTest to 3.1
-
- 20 Jul, 2020 1 commit
-
-
Henry Schreiner authored
-
- 07 Jul, 2020 1 commit
-
-
Isuru Fernando authored
* Error out eval_file * Enable dynamic attribute support for Pypy >= 6 * Add a test for dynamic attribute support * Skip test for eval_file on pypy * Workaround for __qualname__ on PyPy3 * Add a PyPy3.6 7.3.0 build * Only disable in PyPy3 * Fix travis testing * No numpy and scipy for pypy * Enable test on pypy2 * Fix logic in eval_file * Skip a few tests due to bugs in PyPy * scipy wheels are broken. make pypy2 a failrue Co-authored-by:Andreas Kloeckner <inform@tiker.net>
-
- 06 Jul, 2019 1 commit
-
-
Wenzel Jakob authored
-
- 10 Sep, 2017 1 commit
-
-
Dean Moldovan authored
-
- 19 Aug, 2017 1 commit
-
-
Jason Rhinelander authored
The main point of `py::module_local` is to make the C++ -> Python cast unique so that returning/casting a C++ instance is well-defined. Unfortunately it also makes loading unique, but this isn't particularly desirable: when an instance contains `Type` instance there's no reason it shouldn't be possible to pass that instance to a bound function taking a `Type` parameter, even if that function is in another module. This commit solves the issue by allowing foreign module (and global) type loaders have a chance to load the value if the local module loader fails. The implementation here does this by storing a module-local loading function in a capsule in the python type, which we can then call if the local (and possibly global, if the local type is masking a global type) version doesn't work.
-
- 13 Aug, 2017 1 commit
-
-
Dean Moldovan authored
One module uses a generic vector caster from `<pybind11/stl.h>` while the other exports `std::vector<int>` with a local `py:bind_vector`.
-
- 05 Aug, 2017 1 commit
-
-
Jason Rhinelander authored
Attempting to mix py::module_local and non-module_local classes results in some unexpected/undesirable behaviour: - if a class is registered non-local by some other module, a later attempt to register it locally fails. It doesn't need to: it is perfectly acceptable for the local registration to simply override the external global registration. - going the other way (i.e. module `A` registers a type `T` locally, then `B` registers the same type `T` globally) causes a more serious issue: `A.T`'s constructors no longer work because the `self` argument gets converted to a `B.T`, which then fails to resolve. Changing the cast precedence to prefer local over global fixes this and makes it work more consistently, regardless of module load order.
-
- 04 Aug, 2017 1 commit
-
-
Jason Rhinelander authored
This commit adds a `py::module_local` attribute that lets you confine a registered type to the module (more technically, the shared object) in which it is defined, by registering it with: py::class_<C>(m, "C", py::module_local()) This will allow the same C++ class `C` to be registered in different modules with independent sets of class definitions. On the Python side, two such types will be completely distinct; on the C++ side, the C++ type resolves to a different Python type in each module. This applies `py::module_local` automatically to `stl_bind.h` bindings when the container value type looks like something global: i.e. when it is a converting type (for example, when binding a `std::vector<int>`), or when it is a registered type itself bound with `py::module_local`. This should help resolve potential future conflicts (e.g. if two completely unrelated modules both try to bind a `std::vector<int>`. Users can override the automatic selection by adding a `py::module_local()` or `py::module_local(false)`. Note that this does mildly break backwards compatibility: bound stl containers of basic types like `std::vector<int>` cannot be bound in one module and returned in a different module. (This can be re-enabled with `py::module_local(false)` as described above, but with the potential for eventual load conflicts).
-