HTML Purifier - это стандартная библиотека фильтров HTML, написанная на PHP. HTML-очиститель не только удалит весь вредоносный код (более известный как XSS) с тщательно проверенным, безопасным, но и разрешенным белым списком, он также гарантирует, что ваши документы соответствуют стандартам, что только достижимо с полным знанием спецификаций W3C.
rpy2
3.0.0 пытается упростить свою систему преобразования, и с этим сделать свои недостатки легче как предвидеть, так и смягчать.
Здесь, когда активен слой преобразования в numpy, происходит следующее:
Эта симметрия не является обязательным требованием, а является способом, которым по умолчанию является уровень преобразования numpy. Можно настроить слой асимметричного преобразования, который будет здесь преобразовывать числовые массивы в R-массивы, но оставляя R-массивы как таковые при возвращении из R, относительно быстро и легко.
import numpy
from rpy2.rinterface_lib import sexp
from rpy2 import robjects
from rpy2.robjects import conversion
from rpy2.robjects import numpy2ri
# We are going to build our custom converter by subtraction, that is
# starting from the numpy converter and only revert the part converting R
# objects into numpy arrays to the default conversion. We could have also
# build it by addition.
myconverter = conversion.Converter('assym. numpy',
template=numpy2ri.converter)
myconverter.rpy2py.register(sexp.Sexp,
robjects.default_converter.rpy2py)
Это пользовательское преобразование может быть использовано тогда, когда оно нам нужно:
with conversion.localconverter(myconverter):
res = stats.quantile(numpy.array([1, 2, 3, 4]))
Результат:
>>> print(res.names)
[1] "0%" "25%" "50%" "75%" "100%"
Если это выглядит как слишком много усилий, вы можете также полностью пропустите конвертер numpy, используйте только конвертер по умолчанию и вручную приведите ваши numpy массивы к подходящим R массивам, когда вы сочтете это необходимым:
>>> stats.quantile(robjects.vectors.IntVector(numpy.array([1, 2, 3, 4]))).names
R object with classes: ('character',) mapped to:
['0%', '25%', '50%', '75%', '100%']