mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-06 00:20:18 +01:00
This pr gets rid of the pyobj_interpreter_ variable from PyObjectSlot and saves a word in the process Gonna ask for review from @huydhn as there are some changes to CI. Testing: imported internally and the failed android build seems to work now! Pull Request resolved: https://github.com/pytorch/pytorch/pull/162659 Approved by: https://github.com/albanD, https://github.com/huydhn
39 lines
1.1 KiB
C++
39 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include <c10/core/impl/PyInterpreter.h>
|
|
#include <c10/macros/Export.h>
|
|
#include <c10/util/Registry.h>
|
|
#include <memory>
|
|
|
|
namespace c10::impl {
|
|
|
|
// Minimal interface for PyInterpreter hooks
|
|
struct C10_API PyInterpreterHooksInterface {
|
|
virtual ~PyInterpreterHooksInterface() = default;
|
|
|
|
// Get the PyInterpreter instance
|
|
// Stub implementation throws error when Python is not available
|
|
// We return nullptr rather than throwing an error since there are bits of c10
|
|
// that expect an empty PyObjectSlot when python is not available.
|
|
virtual PyInterpreter* getPyInterpreter() const {
|
|
return nullptr;
|
|
}
|
|
};
|
|
|
|
struct C10_API PyInterpreterHooksArgs{};
|
|
|
|
C10_DECLARE_REGISTRY(
|
|
PyInterpreterHooksRegistry,
|
|
PyInterpreterHooksInterface,
|
|
PyInterpreterHooksArgs);
|
|
|
|
#define REGISTER_PYTHON_HOOKS(clsname) \
|
|
C10_REGISTER_CLASS(PyInterpreterHooksRegistry, clsname, clsname)
|
|
|
|
// Get the global PyInterpreter hooks instance
|
|
C10_API const PyInterpreterHooksInterface& getPyInterpreterHooks();
|
|
|
|
C10_API PyInterpreter* getGlobalPyInterpreter();
|
|
|
|
} // namespace c10::impl
|