En Python Discourse noté que mi suscripción RSS a la categoría users (renombrada “Ayuda”) había dejado de funcionar. Al intentar restablecerla, la suscripción https://discuss.python.org/c/users/7.rss da como resultado contenido no válido que mi lector (Thunderbird) no carga. Falla la validación en W3C:
Dado que esa verificación falla, supongo que no soy el único afectado.
El problema parece ser un carácter inesperado en la publicación https://discuss.python.org/t/beginner-help-with-concatenating-arrays/36226. En el feed, la subcadena ofensiva aparece como b'N \\x02x KSQT' (dos ocurrencias).
Por supuesto, no es culpa del usuario, sino de Discourse por permitirlo, y la solución a largo plazo está en sus manos.
Un administrador de allí (o al menos un desarrollador principal de CPython) me sugirió que lo informara aquí.
PrettyText.format_for_email(p.cooked, p)
=> "<p>Hola, actualmente estoy intentando seguir un pipeline de aprendizaje automático descrito en un artículo. Esencialmente, necesito crear una matriz de entrada con un tamaño de N x KSDT. El artículo lo describe así: “Aquí k, ks, kd y ksd son etiquetas y no índices, y todos los términos se entienden como matrices del mismo tamaño N x KSQT, por lo que, por ejemplo, Xk no es una matriz de tamaño N x K, sino la matriz completa de tamaño N x KSQT con N x k valores únicos replicados KSQ veces”.</p>\n<p>Ahora mismo, tengo tres np.arrays siguientes:<br>\nbias_block: (348, 2, 151), bias_contrast: (348, 5, 151) y bias_decision: (348, 2, 151).<br>\nSegún mi entendimiento, para combinar estas tres matrices, necesitaría un tamaño final de (348, 20, 20, 20, 151). Sin embargo, realmente me cuesta cómo combinar estas matrices. ¿Alguien podría ayudarme con esto, muchas gracias.</p>"
No veo qué está mal en esa cadena… la N x KSDT no parece tener nada oculto ahí.
(nótese que la publicación ya ha salido de las últimas, por lo que el rss ha vuelto a funcionar como efecto secundario, pero ciertamente me gustaría solucionar esto.
Miré la publicación hoy temprano. Había un código hexadecimal Unicode que era algo así como \u0026#x2610; (\u0026#x2610). Ese no es el código exacto, sin embargo. Se estaba mostrando en el contenido sin procesar de la publicación esta mañana (https://discuss.python.org/posts/121311.json). Parece que ha sido editado desde entonces.
La primera ocurrencia está bien, pero la segunda y tercera contienen un byte 0x02 (cuando guardo desde esta URL usando Firefox y leo el archivo como bytes usando Python), como en mi primera publicación. validator.w3.org me dio suficiente contexto para localizar el primer 0x02 en la línea.
U+002610 es solo el símbolo de la caja con el que algo lo está reemplazando (pero no en el RSS).
Pedí que se reparara la publicación ya que no veía que mi suscripción funcionara sin ello. Puedo enviarte mis bytes guardados si eso ayuda.
Según la especificación RSS 2.0, el feed debe cumplir con XML 1.0. Y según la especificación XML 1.0, hay varios caracteres de control que no son válidos.
La PR a continuación es un primer intento para abordar esto: