1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173
#![no_std] #![allow(non_camel_case_types, non_snake_case, non_upper_case_globals)] #![cfg_attr(Py_LIMITED_API, allow(unused_imports))] // old: marked with TODO // Based on the headers of Python 3.4.3 // Supports the stable ABI (PEP 384) only. // new: // Based on the headers of Python 3.3.0, 3.4.0 and 3.5.0. extern crate libc; pub use pyport::*; pub use pymem::*; pub use object::*; pub use objimpl::*; pub use typeslots::*; #[cfg(Py_3_4)] pub use pyhash::*; pub use pydebug::*; pub use bytearrayobject::*; pub use bytesobject::*; pub use unicodeobject::*; pub use longobject::*; pub use boolobject::*; pub use floatobject::*; pub use complexobject::*; pub use rangeobject::*; pub use memoryobject::*; pub use tupleobject::*; pub use listobject::*; pub use dictobject::*; pub use enumobject::*; pub use setobject::*; pub use methodobject::*; pub use moduleobject::*; pub use fileobject::*; #[cfg(Py_3_5)] pub use fileutils::*; pub use pycapsule::*; pub use traceback::*; pub use sliceobject::*; pub use iterobject::*; pub use descrobject::*; pub use warnings::*; pub use weakrefobject::*; pub use structseq::*; pub use codecs::*; pub use pyerrors::*; pub use pystate::*; pub use pyarena::*; pub use modsupport::*; pub use pythonrun::*; pub use ceval::*; pub use sysmodule::*; #[cfg(Py_3_6)] pub use osmodule::*; pub use intrcheck::*; pub use import::*; pub use objectabstract::*; pub use bltinmodule::*; pub use code::*; pub use compile::*; pub use eval::*; pub use pystrtod::*; pub use frameobject::PyFrameObject; pub use marshal::*; mod pyport; // mod pymacro; contains nothing of interest for Rust // mod pyatomic; contains nothing of interest for Rust // mod pymath; contains nothing of interest for Rust // [cfg(not(Py_LIMITED_API))] // mod pytime; contains nothing of interest mod pymem; mod object; mod objimpl; mod typeslots; #[cfg(Py_3_4)] mod pyhash; mod pydebug; mod bytearrayobject; mod bytesobject; mod unicodeobject; mod longobject; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 // mod longintrepr; TODO excluded by PEP-384 mod boolobject; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod floatobject; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod complexobject; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod rangeobject; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod memoryobject; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod tupleobject; mod listobject; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod dictobject; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 // mod odictobject; TODO new in 3.5 mod enumobject; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod setobject; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod methodobject; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod moduleobject; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 // mod funcobject; TODO excluded by PEP-384 // mod classobject; TODO excluded by PEP-384 mod fileobject; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod pycapsule; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod traceback; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod sliceobject; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 // mod cellobject; TODO excluded by PEP-384 mod iterobject; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 // mod genobject; TODO excluded by PEP-384 mod descrobject; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod warnings; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod weakrefobject; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod structseq; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 // mod namespaceobject; TODO mod codecs; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod pyerrors; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod pystate; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 // #[cfg(Py_3_7)] mod context; TODO #[cfg(Py_LIMITED_API)] mod pyarena {} #[cfg(not(Py_LIMITED_API))] mod pyarena; // TODO: incomplete mod modsupport; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod pythonrun; // TODO some functions need to be moved to pylifecycle //mod pylifecycle; // TODO new in 3.5 mod ceval; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod sysmodule; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 #[cfg(Py_3_6)] mod osmodule; mod intrcheck; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod import; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 mod objectabstract; mod bltinmodule; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 #[cfg(Py_LIMITED_API)] mod code {} #[cfg(not(Py_LIMITED_API))] mod code; mod compile; // TODO: incomplete mod eval; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 // mod pyctype; TODO excluded by PEP-384 mod pystrtod; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 // mod pystrcmp; TODO nothing interesting for Rust? // mod dtoa; TODO excluded by PEP-384 #[cfg(Py_3_5)] mod fileutils; // mod pyfpe; TODO probably not interesting for rust // Additional headers that are not exported by Python.h pub mod structmember; // TODO supports PEP-384 only; needs adjustment for Python 3.3 and 3.5 #[cfg(not(Py_LIMITED_API))] pub mod frameobject; #[cfg(Py_LIMITED_API)] pub mod frameobject { pub enum PyFrameObject {} } mod marshal;