Недавно я написал HTML-дезинфицирующее средство в Java. Он основан на смешанном подходе регулярных выражений и Java-коде. Лично я ненавижу регулярные выражения и его глупость (читаемость, ремонтопригодность и т. Д.), Но если вы уменьшите объем своих приложений, это может соответствовать вашим потребностям. Во всяком случае, мой дезинфицирующее средство использует белый список для тегов HTML и черный список для некоторых атрибутов стиля.
Для вашего удобства я создал игровое поле, чтобы вы могли проверить, соответствует ли код вашим требованиям: игровая площадка и код Java . Ваши отзывы будут оценены.
Существует небольшая статья, описывающая эту работу в моем блоге: http://roberto.open-lab.com
Существует несколько рабочих раундов:
def f(a):
def g (double b):
cdef np.ndarray[double, ndim=1] a_typed = a
return a_typed+b
return g(1)
Это имеет небольшую стоимость, связанную с проверкой типа при каждом вызове g
, значение которого зависит от того, сколько другой работы вы делаете в g
. def f(a):
cdef double[:] memview_of_a = a
def g(double b):
memview_of_a[0] = 0 # example of indexing operation
return a+b
return g(1)
Следует помнить, что memview_of_a
и a
просматривают одни и те же данные, поэтому вы можете получить к нему доступ двумя способами. Индексирование массивов выполняется с учетом памяти. [Info] В общем, это ограничение, но есть такие ограничения, как скалярные операции над массивами, поэтому информация о типе не имеет никакого отношения. (хотя они не очень аккуратные).