7 ms·
> Basically, exec and eval don't work. Since we don't use those in production code at Google, this seemed acceptable. What about stuff like literal_eval? Or ev
by throwathrowaway 10y ago
> Basically, exec and eval don't work. Since we don't use those in production code at Google, this seemed acceptable.
What about stuff like literal_eval? Or even just monkeypatching with name.__dict__[param] = value ?
> It does fine grained locking. Mutable data structures like lists and dicts do their own locking. Incidentally, this is one reason why supporting C extensions would be complicated.
Would there be a succinct theoretical description of exactly how that's implemented anywhere? What about things like numpy arrays.
- trotterdylan 10y ago> > Basically, exec and eval don't work. Since we don't use those in production code at Google, this seemed acceptable. > What about stuff like literal_eval? Or even just monkeypatching with name.__dict__[param] = value ? literal_eval could in principle be supported I think. name.__dict__[param] = value works as you'd expect: $ make run class A(object): pass a = A() a.__dict__['foo'] = 'bar' print a.foo bar EDIT: fixed formatting
- ehsankia 10y agoHmm, numpy isn't pure python, is it? If I read correctly this only works with pure python.
- genericpseudo 10y agoBy volume numpy is mostly assembler written to the Fortran ABI (it's a LAPACK/BLAS-etc wrapper).
- onalark 10y agoNumPy is a library that provides typed multidimensional arrays and functions that run atop them. It does provide a built-in LAPACK/BLAS or can link externally to LAPACK/BLAS, but that's a side effect of providing typed arrays and is nowhere near the central purpose of the library. Also, NumPy is implemented completely in C and Python, and makes extensive use of CPython extension hooks and knowledge of the CPython reference counting implementation, which is part of the reason why it is so hard to port to other implementations of Python.
- nine_k 10y agoHaving typed arrays without efficient functions over them would be rather pointless.
- filmor 10y agoAre you sure you aren't mistaking numpy for scipy?
- ngrilly 10y agonumpy is the foundation of scipy.